Skip to main content
 首页 » 编程设计

python之哪个 itertools 生成器不会跳过任何组合

2025年05月04日16mate10pro

<分区>

当我运行这段代码时,我没有得到 3 个字符的所有可能组合:

def comb(iterable, r): 
    pool = tuple(iterable) 
    n = len(pool) 
    for indices in permutations(range(n), r): 
        if sorted(indices) == list(indices): 
            yield tuple(pool[i] for i in indices) 
def start(): 
    for x in comb("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ12234567890!@#$%^&*?,()-=+[]/;",3): 
        print x 

相反,它会跳过一些。当我重复字符 3 次时,我得到了我需要的所有组合,但我得到了多次。这需要三倍的时间,这不是我想要的。我将计算数百万种组合,因此我需要知道重复字符的替代方法。