Python中itertools的最小值/最大值

时间:2016-03-21 21:12:31

标签: python dictionary itertools brute-force

我有这段代码:

import itertools
res = itertools.product('abc', repeat=3) 
for i in res: 
    print ''.join(i)

问题是我不知道我怎么也可以添加最小值和最大值来输出那个字?所以我要说我添加了'a''b''c'字母,但我只想要一个最少1个字母和最多2个字母的单词:我该怎么做?我已经在互联网上搜索过,但找不到任何东西。它的目的是为蛮力制作一本字典。

2 个答案:

答案 0 :(得分:2)

使用itertools.permutations()。然后连接结果。

S = [x for x in permutations('abc',2)] + [ x for x in permutations('abc',1)]

实际上你也可以使用products。唯一的区别是产品删除了重复的结果。但是当所有元素都不同时,你不会有任何重复。

答案 1 :(得分:1)

这个怎么样?

import itertools
min_letters = 1
max_letters = 2
for num in range(min_letters, max_letters + 1):
    res = itertools.product('abc', repeat=num) 
    for i in res: 
        print ''.join(i)