Эта строка является источником проблем:
solnSet.append(nums[0])
Добавление к list
ничего не возвращает (поэтому по умолчанию возвращается None
). Когда ваша функция выполняет рекурсию для allSum(solnSet.append(nums[0]), nums[1:], target)
, , вы фактически передаете None
в первый аргумент .
Это вызовет исключение 'NoneType' object is not iterable
, когда ваш код запускает map(lambda x: tuple(x), solnSet)
или sum(solnSet)
.
Чтобы решить эту проблему, вы можете сделать
allSum(solnSet + [nums[0]], nums[1:], target)
(это создает новый список и не изменяет оригинал)
или
solnSet.append(nums[0])
allSum(solnSet, nums[1:], target)
(но изменяет оригинал).