Это не я схитрил, это Grakovne идея. =)
А вот перебор всех слов:
1 | 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' } |
2 |
3 | def tree(num, start = u''): |
4 | if len (num) = = 0 : |
5 | return [start] |
6 | return [j for i in ab[num[ 0 ]] for j in tree(num[ 1 :], start + i)] |
7 |
8 | t = tree( '1234' ) |