我遇到过这个帖子:如何在Python中生成列表的所有排列 https://stackoverflow.com/questions/104420/how-to-generate-all-permutations-of-a-list-in-python
但我需要更多的东西,即字符串的所有排列以及所有子字符串的所有排列。我知道这是一个很大的数字,但这可能吗?
import itertools
def all_permutations_substrings(a_str):
return (
''.join(item)
for length in xrange(1, len(a_str)+1)
for item in itertools.permutations(a_str, length))
但请注意,这是真正的排列 - 例如,hello
将具有任何具有两个的子串排列l
s 两次,因为l
的将被认为是“独特的”。如果你想摆脱它,你可以通过set()
:
all_permutations_no_dupes = set(all_permutations_substrings(a_str))
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)