所以基本上,我有一个组合生成器脚本......它的工作方式......它的工作方式是生成组合,然后我将它们复制/粘贴到一个文本文件中,这很难考虑6位数14亿美元的排列......以及大约130万之后它的嗡嗡声?所以我怎么做到这一点当它组合时它将它存储到.txt文件,如果它崩溃...它可以从.txt文件中最后记录的行重新启动 脚本:
import itertools
from itertools import *
lower_a = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z']
num = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9']
all = []
all = lower_a + num
def com():
for x in range(2):
for s in itertools.product(all, repeat=x):
print(''.join(s))
print(com())
答案 0 :(得分:0)
您显示的代码不是您正在运行的代码。例如,此细分不能按您的描述行事:
for x in range(2):
for s in itertools.product(all, repeat=x):
print(''.join(s))
这应该为两种情况下的所有成员显示笛卡尔积:
当x为零时,itertools.product(any_list_at_all, repeat=0)
只有一个零元素组合,即空集。当z为1时,组合的数量等于输入列表的长度。在您的情况下,这使得36个字符的总共len(all)
个组合一次取1个,即36集。
因为在笛卡尔积中,输出集的基数是输入集的基数(对于有限集)的乘积,这意味着product(all, range=6)
返回了大约22亿集,那么1.4亿来自哪里?