Python: ¿Cómo puedo incluir los delimitadores en una división de cadena?

Me gustaría dividir una cadena, con múltiples delimitadores, pero mantener los delimitadores en la lista resultante. Creo que esto es algo útil para hacer un primer paso para analizar cualquier tipo de fórmula, y sospecho que existe una buena solución de Python.

Alguien hizo una pregunta similar en Java.aquí.

Por ejemplo, una división típica se ve así:

>>> s='(twoplusthree)plusfour'
>>> s.split(f, 'plus')
['(two', 'three)', 'four']

Pero estoy buscando una buena forma de agregar el signo positivo (o retenerlo):

['(two', 'plus', 'three)', 'plus', 'four']

En última instancia, me gustaría hacer esto para cada operador y soporte, así que si hay una manera de obtener

['(', 'two', 'plus', 'three', ')', 'plus', 'four']

todo de una vez, entonces todo lo mejor.

Respuestas a la pregunta(5)

Su respuesta a la pregunta