from functools import reduce
def encode(n):
return encode((n-1)//26)+chr((n-1)%26+65) if n>0 else ''
def decode(s):
return reduce(lambda x,y:x*26+y-64,map(ord,'\0'+s))
def conv(text):
print( '{} => {}'.format( text, encode(int(text)) if text.isdigit() else decode(text)) )
conv('A')
conv('AA')
conv('ABC')
conv('26')
conv('266379')
ZnJvbSBmdW5jdG9vbHMgaW1wb3J0IHJlZHVjZQoKZGVmIGVuY29kZShuKToKCXJldHVybiBlbmNvZGUoKG4tMSkvLzI2KStjaHIoKG4tMSklMjYrNjUpIGlmIG4+MCBlbHNlICcnCgpkZWYgZGVjb2RlKHMpOgoJcmV0dXJuIHJlZHVjZShsYW1iZGEgeCx5OngqMjYreS02NCxtYXAob3JkLCdcMCcrcykpCgpkZWYgY29udih0ZXh0KToKCXByaW50KCAne30gPT4ge30nLmZvcm1hdCggdGV4dCwgZW5jb2RlKGludCh0ZXh0KSkgaWYgdGV4dC5pc2RpZ2l0KCkgZWxzZSBkZWNvZGUodGV4dCkpICkKCmNvbnYoJ0EnKQpjb252KCdBQScpCmNvbnYoJ0FCQycpCmNvbnYoJzI2JykKY29udignMjY2Mzc5JykK