给定一个没有重复数字的序列,返回其所有可能的全排列。
示例:
输入: [1,2,3]
输出:
[
[1,2,3],
[1,3,2],
[2,1,3],
[2,3,1],
[3,1,2],
[3,2,1]
]
#46. 全排列
class Solution(object):
def permute(self, nums):
"""
:type nums: List[int]
:rtype: List[List[int]]
"""
self.arr = []
self.find(0,nums)
return self.arr
def swap(self,x,y,arr):
temp=arr[x]
arr[x]=arr[y]
arr[y]=temp
def find(self,index,nums):
if index>=len(nums):
t = []
for i in nums:
t.append(i)
self.arr.append(t)
return
for j in range(index,len(nums)):
self.swap(j,index,nums)
self.find(index+1,nums)
self.swap(j,index,nums)