Python简单程序实现全排列组合

本文探讨了如何使用Python实现字符串的全排列。通过将字符串拆分成字符列表,然后利用循环和列表生成式,逐步替换每个位置的字符,形成所有可能的排列组合。这种方法为解决全排列问题提供了一个简单的思路。
摘要由CSDN通过智能技术生成

对于任意输入的字符串(input())s,如何实现他的一个全排列?!'

首先我的一个思路是将字符串s的每一位元素分开并用列表装起来,例如:s='abc',['a','b','c']

然后从列表的第一位开始,到最后一位结束每一个位置都有set(len(s))种替换方法,所以便有了最开始的程序:

s='abc'

sample=[i for i in range(len(s))] # 列表生成式

lst=[] #注意不可以写成lst=sample=[] 如果需要两个空列表

count=0

for i in s:

 sample[count]=i

 lst+=[sample] #把替换后的每一个列表装起来如:[['a',1,2],['b',1,2],['c',1,2]]

于是依次重复直至替换完全。这只是一个思路,那么现在开始完善代码:

def permutations(s):
    n=-1
    lst_new=[]
    count=0
    while count<len(s):
        count+=1
        if n==-1:
            sample=[[i for i in range(len(s))]]
        elif 0<=n<=len(s)-1:
            sample=lst_new
            lst_new=[]
        else:
           
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值