""" Комбинации. Составьте программу combinations. ру, получающую из командной
строки один аргумент n и выводящую все 2" комбинаций любого
размера. Комбинация - это подмножество из п элементов, независимо
от порядка. Например, когда п = 3, вы должны получить следующий вывод:
а аЬ аЬс ас Ь ьс с
Обратите внимание, что программа должна выводить и пустую строку
(подмножество размером О). """

from itertools import combinations


def sum_comb(n):
    return ' '.join(map(lambda i: ' '.join(map(lambda x: ''.join(map(str, x)), combinations(range(n), i))), range(n + 1)))


if __name__ == '__main__':
    n = int(input())
    print(sum_comb(n))

""" Комбинации. Составьте программу combinations. ру, получающую из командной
строки один аргумент n и выводящую все 2" комбинаций любого
размера. Комбинация - это подмножество из п элементов, независимо
от порядка. Например, когда п = 3, вы должны получить следующий вывод:
а аЬ аЬс ас Ь ьс с
Обратите внимание, что программа должна выводить и пустую строку
(подмножество размером О). """

from itertools import combinations


def sum_comb(n):
    return ' '.join(map(lambda i: ' '.join(map(lambda x: ''.join(map(str, x)), combinations(range(n), i))), range(n + 1)))


if __name__ == '__main__':
    n = int(input())
    print(sum_comb(n))

Комбинации. Составьте программу combinations. ру, получающую из командной
 строки один аргумент n и выводящую все 2" комбинаций любого
 размера. Комбинация - это подмножество из п элементов, независимо
 от порядка. Например, когда п = 3, вы должны получить следующий вывод:
 а аЬ аЬс ас Ь ьс с
 Обратите внимание, что программа должна выводить и пустую строку
 (подмножество размером О).