给定一个没有重复数字的序列,返回其所有可能的全排列。
示例:
输入: [1,2,3]
输出:
[
[1,2,3],
[1,3,2],
[2,1,3],
[2,3,1],
[3,1,2],
[3,2,1]
]
思路
递归即可,[1,2,3 ]的全排列可视为,1开头加[2,3]的全排列,2开头加[1,3]的全排列,3开头加[1,2]的全排列,合并即是结果
代码
def permute(self, nums):
e=[]
if(len(nums)==1):
return [nums]
for i in range(len(nums)):
q=self.permute(nums[:i]+nums[i+1:])
for c in q:
e.append([nums[i]]+c)
return e