Как сгенерировать список комбинаций с allowed_ints
, который составляет goal
?Комбинации ограниченного набора целых чисел
Примеры:
allowed_ints=[1,2], goal=4
combinations = [[1,1,1,1],[1,1,2],[2,1,1],[2,2],[1,2,1]]
allowed_ints=[5, 6], goal=13
combinations = []
Что я сделал до сих пор сделать не работает.
def combinations(allowed_ints, goal):
if goal > 0:
for i in allowed_ints:
for p in combinations(allowed_ints, goal-i):
yield [i] + p
else:
yield []
print list(combinations([1, 2],3))
[[1, 1, 1], [1, 1, 2], [1, 2], [2, 1], [2, 2]] # not what I want
убедитесь, что вы не пересекаете порог для 'goal'. –
После полного запуска комбинаций()? –
Вы могли бы, но зачем откладывать задачу ... –