解体思路::将求字符串的全排列分解为两步:
第一步是确定第一个位置的字符,就是第一个位置与后边的所有字符进行交换。
第二步,就是对除了第一个位置的后边所有位置的字符进行相同处理;直至剩下一个字符,打印;
代码如下:
def permutation(string, n, target): if n==len(string)-1: target.append("".join(string)) return for i in range(n, len(string)): string[n],string[i]=string[i],string[n] permutation(string, n+1,target) #还原之前的顺序 string[n], string[i] = string[i], string[n] string=list(input().strip()) target=[] permutation(string, 0, target) print(target)