[Python手撕]全排列

THINK TWICE, CODE ONCE. / 2024-10-11 / 原文

class Solution:
    def permute(self, nums: List[int]) -> List[List[int]]:

        res = []
        n = len(nums)

        def per(nums,start):
            if start == n-1:
                res.append(nums[:])
            else:
                for i in range(start,n):
                    nums[i],nums[start] = nums[start],nums[i]
                    per(nums,start+1)
                    nums[i],nums[start] = nums[start],nums[i]

        per(nums,0)
        return res