利用遞歸實現全排列(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))