python-3.x 组合生成器[副本]

qmelpv7a  于 2023-03-04  发布在  Python
关注(0)|答案(1)|浏览(89)
    • 此问题在此处已有答案**:

Get all (n-choose-k) combinations of length n(3个答案)
四年前关闭了。
我想写一个代码,它能给出长度为k的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)

相关问题