def generate_subsets(current, start, n, result):
    result.append(current[:])
    for i in range(start, n + 1):
        current.append(i)
        generate_subsets(current, i + 1, n, result)
        current.pop()

def main():
    n = int(input())
    result = []
    generate_subsets([], 1, n, result)
    
    for subset in result:
        if not subset:
            print("{}")
        else:
            print("{" + ", ".join(map(str, subset)) + "}")

if name == "main":
    main()

Embed on website

To embed this program on your website, copy the following code and paste it into your website's HTML: