Создайте словарь из слов, сопоставленных с уникальными числами, и используйте это, это лучшее, что вы можете сделать.
Я сомневаюсь, что используется более 2 ^ 32 слов, но это непроблема, с которой вы сталкиваетесь, проблема в том, что вам нужно отобразить числа обратно в слова.
Если бы вы только отображали слова в числа, некоторый алгоритм хеширования мог бы работать, хотя вам бы пришлось немного поработатьчтобы гарантировать, что у вас есть такой, который не вызовет коллизий.
Однако для чисел, возвращаемых к словам, это совсем другая проблема, и самое простое решение этого - просто построить словарь и отобразить оба пути.
Другими словами:
AARDUANI = 0
AARDVARK = 1
...
Если вы хотите сопоставить числа с базой 26 символов, вы можете хранить только 6 символов (или 5 или 7, если я просчитался), но не 12 иконечно, не 20.
Если вы не учитываете только реальные слова, и они не следуют никаким хорошим счетным правилам.Единственный способ сделать это - просто поместить все слова в длинный список и начать присваивать цифры с самого начала.