# dvojková soustava

# 1-ciferná
digits = ['0', '1']
for i in digits:
    print(i)
print()

# 2-ciferná 
for i in digits:
    for j in digits:
        print(i + j)
print()

# 3-ciferná
for i in digits:
    for j in digits:
        for k in digits:
            print(i + j + k)
print()

n = 3
number = [None] * n
def generate_numbers(p):
    if p < n:
        for i in digits:
            number[p] = i
            generate_numbers(p + 1)
    else:
        print("".join(number))

generate_numbers(0)
print()


def generate_numbers(remaining_digits, number=[]):
    if remaining_digits == 0:
        print("".join(number))
    else:
        for i in digits:
            generate_numbers(remaining_digits - 1, number + [i])

generate_numbers(3)
print()