我在网上找到了一些算法来在 Python 中产生混乱,但它们的复杂性都是指数级的,因此我无法让它们与一组 26 个元素(字母表)收敛!
所以我试图找到一种方法来改进以下代码(来源在这里):
def derangement(vs):
l = [None for x in vs]
sol = set()
sol.add(tuple(l))
for v in vs:
sol1 = set()
for s in sol:
for (i, v1) in enumerate(s):
if not v1 and v != vs[i]:
s1 = list(s)
s1[i] = v
sol1.add(tuple(s1))
sol = sol1
return list(sol)
如果有人好奇,这是一个蛮力替换密码求解器。我想看看暴力破解密码需要多长时间!