利用递归实现全排列(python)

利用递归实现全排列(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))
posted @ 2019-04-24 11:25  村口王铁匠  阅读(1438)  评论(0)    收藏  举报