# How to use recursion to sum up a list of numbers up until a certain index

I have to write a code that makes use of recursion to sum numbers in a list up until the index is equal to a pre-determined integer value. i.e.

``````  list = [1,4,8,9]
int = 2
sum = 1 + 4 (index 0 and 1)
``````

below is my code so far, but I am struggling with the logic with my first if statement and hence it isn’t working. I get the error ‘int’ object has no attribute ‘index’ Any help would be greatly appreciated (PS very new to coding – so sorry if my code isn’t the best)!

``````# Sum Recursion

def Arecursion(Alist,index):

if index > 0:       # if the index point in the list matches the integer return the sum
return Alist[index] + Arecursion(Alist,index-1)
else:
return 0

list_test = [1,4,6,7,10]
int_test = 2
print(Arecursion(list_test,int_test))
``````

### >Solution :

You are making it more complex that you need to. You just need a base case — the current index is too big, and the recursion — the value at the current index plus the rest:

``````def sum_rec(l,max_index, i=0):
if i >= max_index or i >= len(l):          # base case
return 0
return l[i] + sum_rec(l, max_index, i+1)   # recursion

sum_rec([1, 2, 3, 4], 0)
# 0
sum_rec([1, 2, 3, 4], 1)
# 1
sum_rec([1, 2, 3, 4], 2)
# 3
sum_rec([1, 2, 3, 4], 3)
#6
``````