Reemplazo del elemento de la lista con el contenido de otra lista

Similar aesta pregunta, pero en lugar de reemplazar un elemento con otro, me gustaría reemplazar cualquier aparición de un elemento con el contenido de una lista.

orig = [ 'a', 'b', 'c', 'd', 'c' ]
repl = [ 'x', 'y', 'z' ]
desired = [ 'a', 'b', 'x', 'y', 'z', 'd', 'x', 'y', 'z' ]

# these are all incorrect, or fail to compile
[ repl if x == 'c' else x for x in orig ]
[ [a for a in orig] if x == 'c' else x for x in orig ]
[ (a for a in orig) if x == 'c' else x for x in orig ]
[ a for a in orig if x == 'c' else x for x in orig ]

Edición: dejó en claro que quería reemplazartodos apariciones del elemento, en lugar de sólo la primera. (Disculpas a cualquiera que no haya cubierto ese caso en su respuesta).

Respuestas a la pregunta(5)

Su respuesta a la pregunta