to_key = function(n) -- represent an integer n in base-26 using a-z local result = {} n = math.floor(n) local a = string.byte('a') while n > 0 do local digit = n % 26 table.insert(result, 1, string.char(digit+a)) n = math.floor(n/26) end if #result == 0 then return 'a' end return table.concat(result) end