利用递归实现全排列(python)
"""
利用递归实现全排列
第一个位置可能有n种可能,第二个位置可能
有n-1种可能......
代码思路就是第一个位置可以和n个元素交换,
第二个元素可以和n-1个元素进行交换,到最
后一个输出这次排列,然后恢复回溯继续输
出其它可能
"""
def permutations(li, position, end):
if position == end:
print(li)
else:
for index in range(position, end):
li[index], li[position] = li[position], li[index]
permutations(li, position + 1, end)
li[index], li[position] = li[position], li[index]
li = ["a", "b", "c"]
permutations(li, 0, len(li))