Перечислять только до n,
или
Разработайте функцию, для которой задано число n, f (n) дает вам n-й элемент из вашего диапазона возможных решений.
В вашем случае вы можете рассматривать свой диапазон как систему счисления с базой 26. Перебазировка числа является хорошо известной проблемой. На моем сайте есть пример , чтобы перейти от числа base-10 к числу base-26 (представленному алфавитом) даже в рубине (сделано моим коллегой). Возможно, вам подойдут некоторые варианты этого алгоритма.
Обновление
Может быть, это не утонуло в том, что это твой ответ: D
Вот код рубина, чтобы получить n-й предмет вашего диапазона:
def rbase(value)
a = ('a'..'z')
b = a.to_a
base = b.length
text = []
begin
value, rest = value.divmod(base)
text << b[rest]
end until value.zero?
text.reverse.join
end
тогда вы можете использовать это так.
irb(main):030:0> rbase(789).rjust(10,'a')
=> "aaaaaaabej"