Я пытаюсь создать рекурсивную функцию, которая возвращает набор всех непустых подмножеств [1,2,3,...,n]
чисел.
Вот мой код:
def subsets(n):
if n == 2:
return ([1], [2], [1, 2])
else:
previous = subsets(n - 1)
temp = previous
result = ()
for set in previous:
set += [n]
result += (set,)
return temp + ([n],) + result
this not 'temp
сохраняет значение previous
после его изменения.Просто изменить его на -
previous = subsets(n - 1)
temp = subsets(n - 1)
работает, но, очевидно, не очень эффективное решение.Я также попытался -
previous,temp = subsets(n - 1)
, но это вызывает ошибку "слишком много значений для распаковки".Что мне делать?