module MoreMath::NumberifyStringFunction

def numberify_string(string, alphabet = 'a'..'z')

def numberify_string(string, alphabet = 'a'..'z')
  alphabet = NumberifyStringFunction.convert_alphabet alphabet
  s, k = string.size, alphabet.size
  result = 0
  for i in 0...s
    c = string[i, 1]
    a = (alphabet.index(c) || raise(ArgumentError, "#{c.inspect} not in alphabet")) + 1
    j = s - i - 1
    result += a * k ** j
  end
  result
end