¿Cómo dividir los caracteres de enteros y operadores de una cadena en Python?

Quiero dividir la cadena en enteros y operadores para realizar la evaluación de expresiones Infix en python.

Aquí está mi cadena:

>>> s = (1-2+3)*5+10/2

Intenté esto para dividir:

>>>list(s)
['(', '1', '-', '2', '+', '3', ')', '*', '5', '+', '1', '0', '/', '2']

Esto está mal. Dado que '10' se divide en '1', '0'

Probé alternativa:

>>> re.findall('[+-/*//()]+|\d+',s)
['(', '1', '-', '2', '+', '3', ')*', '5', '+', '10', '/', '2']

Esto también salió mal. Dado que ') *' debe dividirse en ')', '*'

¿Podrías ayudar a dividir los operadores y los enteros de la expresión dada?

Respuestas a la pregunta(4)

Su respuesta a la pregunta