Python 组合的迭代器函数

Python iterator function for combinations

我正在寻找一个简单的函数来生成元组的所有可能组合,如下所示:

t = (1,1,1,1)

输出:[(0, 0, 0, 0), (0, 0, 0, 1), (0, 0, 1, 0), (0, 0, 1, 1), (0, 1, 0, 0), (0, 1, 0, 1), (0, 1, 1, 0), (0, 1, 1, 1), (1, 0, 0, 0), (1, 0, 0, 1), (1, 0, 1, 0), (1, 0, 1, 1), (1, 1, 0, 0), (1, 1, 0, 1), (1, 1, 1, 0), (1, 1, 1, 1)]

您可能想给它起一个更好的名字:

def huh(numbers):
    all_numbers = []
    for num in numbers:
    all_numbers.extend(range(num+1))
    all_numbers = list(set(itertools.permutations(all_numbers, len(numbers))))
    all_numbers.sort()
    return all_numbers