Python组合生成器 - 存储到.txt文件

时间:2015-10-17 22:51:37

标签: python file combinations

所以基本上,我有一个组合生成器脚本......它的工作方式......它的工作方式是生成组合,然后我将它们复制/粘贴到一个文本文件中,这很难考虑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())

1 个答案:

答案 0 :(得分:0)

您显示的代码不是您正在运行的代码。例如,此细分不能按您的描述行事:

for x in range(2):
    for s in itertools.product(all, repeat=x):
        print(''.join(s))

这应该为两种情况下的所有成员显示笛卡尔积:

  • 当x为0
  • 当x为1时

当x为零时,itertools.product(any_list_at_all, repeat=0)只有一个零元素组合,即空集。当z为1时,组合的数量等于输入列表的长度。在您的情况下,这使得36个字符的总共len(all)个组合一次取1个,即36集。

因为在笛卡尔积中,输出集的基数是输入集的基数(对于有限集)的乘积,这意味着product(all, range=6)返回了大约22亿集,那么1.4亿来自哪里?