向 i 加 1 时输入错误(递归)

Type error when adding 1 to i (Recursion)

我正在尝试编写一个递归,对列表中项目的乘积求和,模式如下:

(some_list[i] * some_list[j]) + (some_list[i+1] * some_list[j-1]) +
(some_list[i+2] * some_list[j-2]) + ........

限制是 i 和 j 之间的每个数字都被计算一次。
我相信我已经正确设置了递归(如果我错了请纠正我),但是我收到以下错误:

TypeError: unsupported operand type(s) for +: 'int' and 'str'
def sum_product(some_list, i, j):
    limit = len(some_list)//2
    if j <= limit:
        return ' '
    else:
        result = some_list[i] + some_list[j]
        return result + sum_product(some_list, i + 1, j - 1)
print(sum_product([1, 2, 3, 4, 5, 6, 7, 8], 1, 6))

改为return0,把+改为*。还应调整限制以包括索引在 i 和 j 之间的所有数字。假设 j > i.

def sum_product(some_list, i, j):
    if j < i:
        return 0
    else:
        result = some_list[i] * some_list[j]
        return result + sum_product(some_list, i + 1, j - 1)
print(sum_product([1, 2, 3, 4, 5, 6, 7, 8], 1, 7))

输出:86= 2*8+3*7+4*6+5*5