Given a collection of distinct numbers, return all possible permutations.
For example,
[1,2,3] have the following permutations:
[
[1,2,3],
[1,3,2],
[2,1,3],
[2,3,1],
[3,1,2],
[3,2,1]
]
class Solution(object):
def permute(self,nums):
"""
:type nums:List[int]
"""
def do1(out,nums,total):
if nums==[]:
total.append(out)
return
else:
for i in range(len(nums)):
if i==(len(nums)-1):
do1(out+[nums[i]],nums[:i]+nums[i+1:],total)
else:
if nums[i]==nums[i+1]:
continue
else:
do1(out+[nums[i]],nums[:i]+nums[i+1:],total)
total=[]
nums.sort()
do1([],nums,total)
return total
print(Solution().permute([1,1,2,2,3]))