组合生成器

时间:2018-07-08 00:28:42

标签: python python-3.x generator combinations code-generation

我想写一个代码,给我以ak长度k> n为单位的n个元素的所有可能组合。此代码的问题是我很快用完了内存,我想知道是否有人知道如何修复我不想获得列表元素的所有可能组合。我想获得一定长度的所有元素组合。 谢谢。

def allstrings(alphabet, length):
    """Find the list of all strings of 'alphabet' of length 'length'"""

    if length == 0: return []

    c = [[a] for a in alphabet[:]]
    if length == 1: return c

    c = [[x,y] for x in alphabet for y in alphabet]
    if length == 2: return c

    for l in range(2, length):
        c = [[x]+y for x in alphabet for y in c]

    return c

if __name__ == "__main__":
    for p in allstrings(['a','b','c'],4):
        print (p)

1 个答案:

答案 0 :(得分:1)

import itertools

itertools.combinations('alphabet', length)

来自How to get all possible combinations of a list’s elements?