def all_subsequences(ind, a, new_list, fin_list): if(ind >= len(a)): print(new_list) fin_list.append(new_list) return new_list.append(a[ind]) all_subsequences(ind+1, a, new_list, fin_list) new_list.pop() all_subsequences(ind+1, a, new_list, fin_list) return fin_list a = [3,1,2] new_list = [] final_list = [] result = all_subsequences(0, a, new_list, final_list) print(result)