Buscar permutación de caracteres de una subcadena en Python

Estoy tratando de extraer las ocurrencias de una cadena y de todas las permutaciones de sus caracteres de una línea de texto.

Por ejemplo, necesito extraer la cadenat = 'ABC' y todas sus permutaciones: 'ABC', 'CAB', 'BCA', 'BAC', 'CBA', de la siguiente cadena s:

s = 'ABCXABCXXACXXBACXXBCA'

Los resultados son:ABC, ABC, BAC, BCA

La cuerdat debe tener cualquier longitud y puede contener cualquier carácter en[A-Z], [a-z] y[0-9]

¿Hay alguna manera de obtener el resultado mediante el uso de expresiones regulares en Python?

Sé que podría crear una lista de todas las permutaciones y luego hacer una búsqueda por separado de todos los elementos de la lista, pero me preguntaba si las expresiones regulares pueden proporcionar los resultados de una manera más compacta y rápida.

Respuestas a la pregunta(2)

Su respuesta a la pregunta