Диапазон 'ax' .. 'bc'
действительно представляет ожидаемые вами значения, но он не генерирует их до тех пор, пока это действительно не требуется (как способ сэкономить время и пространство в случае, если вы не в конечном итоге используете каждое значение). Вы можете получить к ним доступ через интегратор или преобразование в массив:
r = 'ax' .. 'bc' # => "ax" .. "bc"
r.class # => Range
r.to_a # => ["ax", "ay", "az", "ba", "bb", "bc"]
r.to_a.class # => Array
r.each {|x| puts x}
ax
ay
az
ba
bb
bc