Help me in solving RECUR22 problem

My issue

Answer

My code

def generate_subsets(arr):
    def backtrack(start, path):
        # Append the current subset to the results
        result.append(path)
        for i in range(start, len(arr)):
            # Recur with the next element included
            backtrack(i + 1, path + [arr[i]])

    result = []
    backtrack(0, [])
    return result

def print_subsets(subsets):
    # Sort subsets: first by length, then lexicographically
    subsets.sort(key=lambda x: (len(x), x))
    for subset in subsets:
        print(" ".join(map(str, subset)))

if __name__ == "__main__":
    import sys
    input = sys.stdin.read
    data = input().strip().split()
    
    N = int(data[0])
    arr = list(map(int, data[1:]))
    
    subsets = generate_subsets(arr)
    print_subsets(subsets)

Learning course: Design and Analysis of Algorithms
Problem Link: https://www.codechef.com/learn/course/kl-daa/KLDAA2400I/problems/RECUR22