Permutations

leetcode.cn

# solution #1
class Solution:
    def permute(self, nums: List[int]) -> List[List[int]]:
        res = []
        def helper(nums,tmp):
            if not nums:
                res.append(tmp)
                return 
            for i in range(len(nums)):
                helper(nums[:i] + nums[i+1:],tmp+[nums[i]])

        helper(nums,[])
        return res
# solution #2
class Solution:
    def permute(self, nums: List[int]) -> List[List[int]]:
        def my_per(i):
            if i ==len(nums)-1:
                ret.append(nums.copy())
                return
            for j in range(i,len(nums)):
                nums[i], nums[j] = nums[j],nums[i]
                my_per(i+1)
                nums[i], nums[j] = nums[j],nums[i]
        ret = []
        my_per(0)
        return ret