字符串的全排列
输出参数是字符串,输出值为列表
def permutation(str):
lenstr = len(str)
if lenstr < 2:
return str
else:
result = []
for i in range(lenstr):
ch = str[i]
rest = str[0:i] + str[i + 1:lenstr]
for s in permutation(rest):
result.append(ch + s) # 将ch与子问题的解依次组合
return result
print(permutation('ab'))
输出
列表数字的全排列
def permutation(nums, p, q):
if p == q:
s.append(list(nums))
else:
for i in range(p, q):
nums[i], nums[p] = nums[p], nums[i]
permutation(nums, p + 1, q)
nums[i], nums[p] = nums[p], nums[i]
s = []
nums = [i for i in range(1, 4)]
permutation(nums, 0, len(nums))
print(s)
输出