Reemplazar múltiples cadenas similares

Tengo la siguiente expresión:

a = 'x11 + x111 + x1111 + x1'

y me gustaría reemplazar lo siguiente:

from_ = ['1', '11', '111', '1111']
to = ['2', '22', '333', '3333']

y por lo tanto obtener el siguiente resultado:

anew = 'x22 + x333 + x3333 + x2'

¿Cómo puedo hacer esto usando Python?

Esta es una pregunta similar a:Python reemplaza cadenas múltiples. Sin embargo, en mi caso, los valores reemplazados están siendo reemplazados por sí mismos si uso las respuestas sugeridas en la pregunta. Por lo tanto, en el enlace mencionado el resultado es'x22 + x222 + x2222 + x2'

Respuestas a la pregunta(1)

Su respuesta a la pregunta