Python 随机蛮力器
出于教育目的,我做了一个简单的蛮力器。然而,由于它是如何工作的,我在早期获得结果的可能性非常小。这就是说,我想随机化的结果,而不会得到重复,也不会大幅放缓 目前的准则是:Python 随机蛮力器,python,python-3.x,random,brute-force,Python,Python 3.x,Random,Brute Force,出于教育目的,我做了一个简单的蛮力器。然而,由于它是如何工作的,我在早期获得结果的可能性非常小。这就是说,我想随机化的结果,而不会得到重复,也不会大幅放缓 目前的准则是: from threading import Thread charset = ( 'abcdefghijklmnopqrstuvwxyz' '1234567890' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' ) def recurse(width, posit
from threading import Thread
charset = (
'abcdefghijklmnopqrstuvwxyz'
'1234567890'
'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
)
def recurse(width, position, base_string):
for i in range(len(charset)):
if position < (width - 1):
Thread(target=recurse(width, position+1,base_string+charset[i])).start()
Thread(target=write_content(base_string+charset[i]+'\n')).start()
def write_content(content):
with open('permutations', 'a+') as f:
f.write(content)
if __name__ == '__main__':
recurse(15,0,'')
我会得到一些大致如下的信息:
aaa
bac
cba
abc
bbc
ccc
...
我该怎么办?我想了一段时间,就是想不出来
另外,哪种语言处理这个问题最快?请查看随
这将生成长度为3的所有排列,因此随着长度的增长,排列速度将显著降低。长度3在我的机器上几乎是即时的,长度5生成了一个内存错误:-)您有一个字符集,一个要从中选择的字符列表,那么为什么不从这个字符集中选择一个随机字符呢?使用python的 模块应该让您相当容易地完成这项工作 如果您在每一步的字符串字符集中选择一个随机索引,它应该具有您想要的效果 编辑:我意识到我没有回答你问题的第二部分-我建议创建一个已检查字符串的列表。在每次尝试之后(即在每个随机生成的字符串之后),您可以将该字符串添加到所述列表中。然后,当您生成一个新字符串时,对照此列表检查它以确保它没有被再次使用
如果您将字符串添加到“used”列表中,使其排序(如),则可以使用a来加快排序速度。如果您按照这些步骤操作,您应该可以为长度更大的字符串/更长的检查集节省大量时间。继续。。。itertools模块中有什么可以生成随机排序的结果而不重复?
aaa
bac
cba
abc
bbc
ccc
...
chars = 'abcdefghijklmnopqrstuvwxyz1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ'
ps = [p for p in itertools.permutations(chars, 3)]
random.shuffle(ps)