Python中itertools的最小值/最大值

Python中itertools的最小值/最大值,python,dictionary,itertools,brute-force,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个字母的单词:我该怎么做?我已经在网上搜索过了,但什么也找不到。它旨在为暴力制作一本词典。使用itertools.permutations()。然后连接结果 S =

我有这个密码:

import itertools
res = itertools.product('abc', repeat=3) 
for i in res: 
    print ''.join(i)
问题是我不知道怎样才能在输出的单词中添加最小值和最大值?假设我输入了字母
'a'
'b'
'c'
,但我只需要最少1个字母和最多2个字母的单词:我该怎么做?我已经在网上搜索过了,但什么也找不到。它旨在为暴力制作一本词典。

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

S = [x for x in permutations('abc',2)] + [ x for x in permutations('abc',1)]
实际上你也可以使用
产品
。唯一的区别是产品会删除重复的结果。但是,当所有元素都不同时,就不会有任何重复项。

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

S = [x for x in permutations('abc',2)] + [ x for x in permutations('abc',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)
这个怎么样

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)

最少一个字母是什么意思?好像你不想要“aa”?你说最少一个字母是什么意思?就像你不想要“aa”?考虑到上下文(为暴力攻击建立字典),允许重复是有意义的,所以使用置换会更好。考虑到上下文(为暴力攻击建立字典),允许重复是有意义的,所以使用置换会更好。