Python - Interseção de strings

Tentativa de escrever uma função for que pega duas cadeias e retorna os caracteres que se cruzam na ordem em que aparecem na primeira cadei

Aqui está o que eu tentei:

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'

however Eu só quero que os caracteres de interseção apareçam uma vez e na ordem da primeira string, ou seja. 'asd'

lguém pode ajuda

Encontrei problemas semelhantes em outros fóruns, mas todas as soluções parecem envolver listas, enquanto eu gostaria que minha saída fosse uma string

questionAnswers(12)

yourAnswerToTheQuestion