¿Intersección de dos listas incluyendo duplicados?

>>> a = [1,1,1,2,3,4,4]
>>> b = [1,1,2,3,3,3,4]

[1,1,2,3,4]

Tenga en cuenta que esta no es la misma pregunta que esta:Python intersección de dos listas manteniendo duplicados Porque aunque hay tres 1 en la lista a, solo hay dos en la lista b, por lo que el resultado solo debería tener dos.