我用的是 itertools.permutations
函数来创建一个包含所有字符组合的列表,然后将结果连接在一起,就像这样。
from itertools import permutations
def iterate(it):
for x in it:
print("".join(list(x)))
k_c = "1234567890qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM. "
iterate(permutations(list(k_c),10))
这就是它产生的结果。
>>>1234567890
123456789q
123456789w
123456789e
123456789r
123456789t
123456789y
123456789u
123456789i
123456789o
...
我的问题是,我需要创建一个100个字符的字符串,比如: 1234567890qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDJ1234567890qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDJ
程序就会停滞不前,因为运行时间太长。iterate(permutations(list(k_c),100))
我想知道是否有可能让程序只返回一个特定的字符串,就像这样,它将返回列表中的第87个值。
permutation_string(k_c,100,87)
>>> 1234567890qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDJ1234567890qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDJ
然后返回列表中的第87个值. 我知道这个问题很奇怪, 但如果有任何帮助,我将不胜感激. 谢谢.
如果你正在寻找一个给定字符串列表的第i个permutation,那么这个答案就可以了。https:/stackoverflow.coma461325858189212