[英]python itertools.permutations combinations
我有这个变量: message = "Hello World"
,我建立了一个将其改组的函数:
def encrypt3(message,key):
random.seed(key)
l = range(len(message))
random.shuffle(l)
return "".join([message[x] for x in l])
此功能只是使消息延迟,因此可能看起来像这样,例如“ Hrl llWodeo”
现在,如果我想使用itertools.permutations再次将其转换为消息,该怎么办? 当我尝试这样做时: print [x for x in itertools.permutations(shuffledMsg)]
该程序因错误而关闭,因为它具有很多可能性。
只要您知道原始种子,这当然是“不可改变的”,因为我们可以简单地重新运行它以找出每个字符要转移到的位置。
import random
def encrypt3(message,key):
random.seed(key)
l = range(len(message))
random.shuffle(l)
return "".join([message[x] for x in l])
key = 'bob'
message = 'Hello World!'
print(encrypt3(message, key))
def unshuffle(message, key):
random.seed(key)
new_list = list(range(len(message)))
old_list = [None] * len(new_list)
random.shuffle(new_list)
for i, old_i in enumerate(new_list):
old_list[old_i] = message[i]
return ''.join(old_list)
print(unshuffle(encrypt3(message, key), key))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.