计算字符串的所有排列组合的Python程序
在这个例子中,你将学习如何计算字符串的所有排列组合。
排列法是以不同的方式从一个集合中选择元素的方法。
例如:从yup中选择字符的方式有yup, ypu, uyp, upy, puy, pyu,以及不选择任何字符。
我们将在下面的例子中进行同样的操作。
例1:使用递归
def get_permutation(string, i=0): if i == len(string): print("".join(string)) for j in range(i, len(string)): words = [c for c in string] # 换一换 words[i], words[j] = words[j], words[i] get_permutation(words, i + 1) print(get_permutation('yup'))
输出
yup ypu uyp upy puy pyu None
在这个例子中,递归被用来寻找一个字符串yup的排列组合。
如果参数yub的长度与之相等,则if条件会打印作为参数的字符串。
在for循环的每次迭代中,yup的每个字符都被存储在单词中。
词的元素被交换。通过这种方式,我们实现了所有不同的字符组合。
这个过程一直持续到达到最大长度。
例2:使用itertools
from itertools import permutations words = [''.join(p) for p in permutations('pro') ] print(words)
输出
['pro', 'por', 'rpo', 'rop', 'opp', 'orp']
使用itertools模块的permutations,我们可以找到一个字符串的permutations。
相关文章