Python数字暴力攻击

Python数字暴力攻击,python,brute-force,Python,Brute Force,我想做一个暴力算法。 我会打印00000000(8个数字)和9999999999(12个数字)之间所有可能的数字组合 我发现了以下代码: for c in itertools.product(numbers, repeat=12): pin = y+''.join(c) print(pin) 但是使用这段代码我不能设置最小长度,所以它以000000000000(12个数字)开始 有什么想法吗?你要求印刷大约1万亿的价值。不到一千年……你有没有考虑过看那个似乎被设置为12的重复论

我想做一个暴力算法。 我会打印00000000(8个数字)和9999999999(12个数字)之间所有可能的数字组合

我发现了以下代码:

for c in itertools.product(numbers, repeat=12):
    pin = y+''.join(c)
    print(pin)
但是使用这段代码我不能设置最小长度,所以它以000000000000(12个数字)开始


有什么想法吗?

你要求印刷大约1万亿的价值。不到一千年……你有没有考虑过看那个似乎被设置为12的重复论点?来吧,这里不要抨击:)@Jean-Françoisfare可能带有
数字='0123456789'
。但是您也可以设置
数字='0123'
。也许我们谈论的是一个组合锁,每个拨号盘有四个可能的值。我知道,我只是在学习这种编程语言,我不想真的做出这样的暴力!不过,告诉你的孙辈在2500年之前不要关窗户。他们之所以使用12位代码是有原因的:这是因为强制执行它们的时间很长。这是一个不错的解决方案,但为什么不使用列表理解:pin=[str(r).zfill(12)表示范围内的r(1E12)]?@Alfe您的职责是警告用户,至少用这些值执行此操作是愚蠢的。@tnknapp因为您需要大约10 TB的数据来存储。但是你的解决方案甚至比
产品
更好(如果我们减少10**12约束)@Jean-FrançoisFabre,否则就是一个完美的解决方案;)当然,在填充列表时,10TB的RAM将被认为很小。
numbers = '01'  # you could use '0123456789' but that would take very long
y = 'foo'

for length in range(8, 13):
  for c in itertools.product(numbers, repeat=length):
    pin = y+''.join(c)
    print(pin)