使用数字索引调用特定的排列组合。

问题描述 投票:0回答:1

我用的是 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个值. 我知道这个问题很奇怪, 但如果有任何帮助,我将不胜感激. 谢谢.

python combinations itertools
1个回答
0
投票

如果你正在寻找一个给定字符串列表的第i个permutation,那么这个答案就可以了。https:/stackoverflow.coma461325858189212

© www.soinside.com 2019 - 2024. All rights reserved.