python递归实现全排列

伪代码

来源:MIT. 6.0001 ProblemSet 4
在这里插入图片描述

Python代码

def get_permutations(sequence):
	if len(sequence) == 1:
        return [sequence]
    else:
        permutations = []
        first_letter = sequence[0]
        rest_of_sequence = sequence[1:]
        for permutation in get_permutations(rest_of_sequence):
            for index in range(len(permutation)+1):
                #去除重复的排列
                if permutation[:index] + first_letter + permutation[index:] in permutations:
                    continue
                permutations.append(permutation[:index] + first_letter + permutation[index:])
        return permutations

example_input = 'test'
print(get_permutations(example_input))

输出结果:

test
etst
estt
tset
stet
sett
tste
stte
tets
etts
ttes
ttse
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值