为什么这段代码输出总是空的?

问题遇到的现象和发生背景
问题相关代码,请勿粘贴截图 def combinationSum(candidates, target):
ans = []
n = []
def backstscking(candidates,target,s,startindex):
    if s>target:
        return
    if (s==target):
        ans.append(n)
        return
    for i in range(startindex,len(candidates)):
        n.append(candidates[i])
        s += candidates[i]
        backstscking(candidates,target,s,i)
        s-=candidates[i]
        n.pop()
backstscking(candidates,target,0,0)
return ans

candidates=[2,3,6,7]
target=7
print(combinationSum(candidates,target))

运行结果及报错内容
我的解答思路和尝试过的方法

img

我想要达到的结果

img

信息发全点

def 中没有 return 不返回值

return的位置不太对,而且缩进是不是少写了?