Программное решение
Перевод в троичную и обратно руками работает, но в нём две ловушки. Первая: буквы в условии часто перечислены не по алфавиту, и если присвоить цифры в порядке условия, всё поедет. Вторая: та самая разница между позицией (счёт с нуля) и номером (счёт с единицы).
Какую задачу решает код: построить весь список слов в алфавитном порядке. Как только список есть, обе задачи решаются одной строкой каждая — переводить ничего не надо.
Разберём по частям. product("АОУ", repeat=5) выдаёт все цепочки длины 5. "".join(w) склеивает кортеж букв в слово. sorted расставляет слова по алфавиту — ровно так, как описано в условии. После этого sp[99] — слово №100 (индекс на единицу меньше номера), а sp.index("ОУАОУ") + 1 — номер слова.
Почему это надёжнее формул: список строится по тому же правилу, которое написано в задании, поэтому ошибиться в нём попросту негде. 243 слова — мелочь для компьютера; даже 6 букв при длине 6 (это около 47 тысяч слов) он отсортирует мгновенно. На экзамене такие задания решают именно так.