Link to this code:
https://cses.fi/paste/998fdd64da09af17d4b702/def augment(gray_codes):
zero_augmented = []
one_augmented = []
for gray_code in gray_codes:
zero_augmented.append('0' + gray_code)
one_augmented.append('1' + gray_code)
one_augmented.reverse()
augmented_gray_codes = zero_augmented + one_augmented
return augmented_gray_codes
gray_codes = ['']
for _ in range(int(input())):
gray_codes = augment(gray_codes)
for gray_code in gray_codes:
print(gray_code)
# Note: can also be done by considering list of chars instead of string for better memory