参考:全排列算法及实现
class Solution:
"""
@param nums: A list of Integers.
@return: A list of permutations.
"""
def permute(self, nums):
# write your code here
if nums == None or len(nums) == 0:
return []
m = len(nums) - 1
self.ans = []
self.res = []
self.fun(nums, 0, m)
return self.res
def fun(self, L, k, m):
if k == m:
self.ans = []
for i in range(m+1):
self.ans.append(L[i])
self.res.append(self.ans)
else:
for i in range(k, m+1):
L[i], L[k] = L[k], L[i]
self.fun(L, k+1, m)
L[i], L[k] = L[k], L[i]