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
我正在寻找一个简单的函数来生成元组的所有可能组合,如下所示:
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