Python - Intersección de cadenas

ntentando escribir una función for que tome dos cadenas y devuelva los caracteres que se cruzan en el orden en que aparecen en la primera cadena.

Esto es lo que probé:

def strIntersection(str1, str2):
    for i in str1:
        str3 = ''
        str3 = str3.join(i for i in str1 if i in str2 not in str3)
    return str3

str1 = 'asdfasdfasfd'
str2 = 'qazwsxedc'

strIntersection(str1,str2)

=> 'asdasdasd'

sin embargo, solo quiero que los caracteres de intersección aparezcan una vez y en orden de la primera cadena, es decir. 'asd'

¿Alguien puede ayudar

He encontrado algunos problemas similares en otros foros, pero todas las soluciones parecen involucrar listas, mientras que me gustaría que mi salida sea una cadena

Respuestas a la pregunta(12)

Su respuesta a la pregunta