#字符串所有排列组合(递归法)
def swap(str,i,j): #交换字符数组下标
temp=str[i]
str[i]=str[j]
str[j]=temp
def permutation(str,start): #字符全排列
n=len(str)
if str==None or start<0:
return 0
if start==n-1: #完成全排列后输出
print(''.join(str))
else:
i=start
while i<n:
swap(str,start,i) #交换start与i所在位置的字符
permutation(str,start+1) #固定第一个字符,对剩余字符进行全排列
swap(str,start,i) #恢复初始顺序
i+=1
if __name__ == '__main__':
s='abc'
start=0
str=list(s)
permutation(str,start) #结果为abc,acb,bac,bca,cba,cab
python求字符串所有排列组合(递归法)(如abc的所有组合为abc,acb,bac,bca,cba,cab)
最新推荐文章于 2023-05-23 21:38:53 发布