Таким образом, поскольку вы разбиваете на трети, проблема не в нечетных числах, а в том, что числа не делятся на 3. Вот функция, которая принимает строку и возвращает кортеж срезов этого строка.
def triplet(s):
extra_zeros = (3 - len(s)) % 3
s += '0' * extra_zeros
return (s[::3], s[1::3], s[2::3])
Вот демонстрация его поведения:
>>> triplet('123456')
('14', '25', '36')
>>> triplet('1234567')
('147', '250', '360')
>>> triplet('12345678')
('147', '258', '360')
>>> triplet('123456789')
('147', '258', '369')