全排列

46. 全排列

给定一个 没有重复 数字的序列,返回其所有可能的全排列。

示例:

输入: [1,2,3]
输出:
[
  [1,2,3],
  [1,3,2],
  [2,1,3],
  [2,3,1],
  [3,1,2],
  [3,2,1]
]
def permute(nums):
    def dfs(nums, path):
        if len(path) == size:
            res.append(path.copy())
            return

        for i in range(size):   #选择列表
            if nums[i] not in path:
                #做选择         
                path.append(nums[i])    #加入路径
                dfs(nums,  path)    #回溯
                #撤销选择
                path.pop()      

    size = len(nums)
    if len(nums) == 0:
        return []

    res = []
    dfs(nums, [])
    return res

你可能感兴趣的:(全排列)