function func(A, x):
A.sort()
result = []
Mystery(A, x, 0, [], result)
return result
function Mystery(A, x, start, p, result):
if x == 0:
result.append(p)
if x < 0:
return
for i from start to n-1:
Mystery(A, x - A[i], i + 1, p + [A[i], result)
Find an upper bound for its time complexity (T).
Hint: You need to writeT(n,x) as a recurrence relation and solve it by expanding it.