replace (Inputs, 'AA', 'A') будет работать, если вам нужно беспокоиться только о парах A.
Модуль частей от 2,6 может быть сорван при необходимости. Захватите fractions.py, numbers.py, и abc.py; все чистые модули Python.
Можно получить единственные файлы отсюда (2,6 ответвления, 2.7 не работает): http://hg.python.org/cpython/branches
SymPy является символьной библиотекой математики, записанной полностью в Python, и имеет полную поддержку рациональных чисел. Из учебного руководства:
>>> from sympy import *
>>> a = Rational(1,2)
>>> a
1/2
>>> a*2
1
>>> Rational(2)**50/Rational(10)**50
1/88817841970012523233890533447265625
Существует также GMP для Python (GMPY), который, в то время как не чистый Python, вероятно, более эффективен.
Еще одной вещью попробовать является Rat.py от демонстрационной папки в ответвлении обслуживания Python 2.5. Если я понимаю правильно, это - папа 2,6 fractions
. Это - единственный модуль без зависимостей.
>>> from Rat import rat
>>> rat(1) / rat(3)
Rat(1,3)
>>> rat(1, 3) ** 2
Rat(1,9)
ОБНОВЛЕНИЕ: Nah, fractions.py
приблизительно в 2.5 раза быстрее для моей задачи.