我在一个项目中使用Python,对于该项目的一部分,我需要对输入该方法的字符串库进行加扰排列。我想得到一个可复制的结果,所以我目前正在使用itertools库的置换方法,然后循环遍历直到达到某个置换。但是,一遍遍循环显然不是最好的时间,尤其是在争夺更多元素(20+)的情况下。有没有在itertools上工作过的人可以告诉我如何更快地找到加扰,还是有人可以为我提供更好的加扰方法?
VVV以下的代码
import itertools
from itertools import permutations
def genkey(library, toget):
scrambled = permutations(library)
iternum = 0
for fin in scrambled:
if iternum == toget:
return(list(fin))
else:
iternum += 1
print('Permutation out of range')
return
我的主要目的只是找到一种方法,使我可以得到看似随机的可复制争夺,但可以根据我提供的int进行复制。我愿意接受任何建议。
听起来您可以使用random
模块:
import random
random.seed(1) # Choose another number here if you want a different outcome
scrambled = random.sample(library, k=len(library))
每次与seed()
使用相同的参数运行时,scrambled
的值应相同。