I was doing a bit of Leetcode and do not understand why  res.append(subset) does not append the subset to res.
Could somebody explain the reason behind this?
def solve(arr):
    res = []
    def dfs(arr,subset):
        if len(arr) == 0:
            # why does the following line not append the subset to res?
            res.append(subset)
        for i in range(len(arr)):
            subset.append(arr[i])
            dfs(arr[:i] + arr[i+1:],subset)
            subset.pop()
    dfs(arr,[])
    return res
 
    