вызывающий func. изменить вход

Мне нужно написать программу, которая получает список номеров и отображает кумулятивную сумму, только с рекурсией!

например:

вход:

1,2,3 

вывод:

 1,3,6 

моя проблема в том, что у меня есть несколько тестов для работы над функцией, и я должен получить правду для всех из них, но я получаю false b / c my func, изменяя входные данные. у кого-то есть идея, как это исправить? (и я не могу изменить тесты, конечно ..)

 def rec_cumsum(numbers): ''' Input: numbers - a list of numbers, Output: a list of cumulative sums of the numbers''' if len(numbers) == 0 : return numbers if len(numbers) == 1 : return numbers numbers[1] = numbers[0] + numbers[1] return [numbers[0]] + rec_cumsum(numbers[1:]) ### Testing code def test_rec_cumsum(numbers): return rec_cumsum(numbers) == [sum(numbers[:i]) for i in range(1,len(numbers)+1)] import random print test_rec_cumsum([1,2,3]) print test_rec_cumsum(random.sample(range(100),30)) print test_rec_cumsum([]) 

Python - лучший язык программирования в мире.