Dividindo dígitos em grupos de três, da direita para a esquerda usando expressões regulares

Eu tenho uma string '1234567890' que eu quero dividir em grupos de três, começando da direita para a esquerda, com o grupo mais à esquerda variando de um dígito a três dígitos (dependendo de quantos dígitos restam)

Essencialmente, é o mesmo procedimento que adicionar vírgulas a um número longo, exceto que eu também quero extrair os últimos três dígitos.

Tentei usar o look-arounds, mas não consegui descobrir uma maneira de obter os três últimos dígitos.

string = '1234567890'
re.compile(r'\d{1,3}(?=(?:\d{3})+$)')
re.findall(pattern, string)

['1', '234', '567']

A produção esperada é (não preciso de vírgulas):

 ['1', '234', '567', 789]

questionAnswers(2)

yourAnswerToTheQuestion