Это не я схитрил, это Grakovne идея. =)
А вот перебор всех слов:
ab = {u'1': u'\u0430\u0431\u0432', u'0': u'\u044d\u044e\u044f', u'3': u'\u0436\u0437\u0438', u'2': u'\u0433\u0434\u0435', u'5': u'\u043d\u043e\u043f', u'4': u'\u043a\u043b\u043c', u'7': u'\u0443\u0444\u0445', u'6': u'\u0440\u0441\u0442', u'9': u'\u0449\u044b\u044c', u'8': u'\u0446\u0447\u0448'}
def tree(num, start = u''):
if len(num) == 0:
return [start]
return [j for i in ab[num[0]] for j in tree(num[1:], start + i)]
t = tree('1234')