Probar si set es un subconjunto, considerando el número (multiplicidad) de cada elemento en el set

Sé que puedo probar si set1 es un subconjunto de set2 con:

{'a','b','c'} <= {'a','b','c','d','e'} # True

Pero lo siguiente también es cierto:

{'a','a','b','c'} <= {'a','b','c','d','e'} # True

¿Cómo puedo hacer que tenga en cuenta el número de veces que se produce un elemento en el conjunto para que:

{'a','b','c'}     <= {'a','b','c','d','e'}      # True
{'a','a','b','c'} <= {'a','b','c','d','e'}      # False since 'a' is in set1 twice but set2 only once
{'a','a','b','c'} <= {'a','a','b','c','d','e'}  # True because both sets have two 'a' elements

Sé que podría hacer algo como:

A, B, C = ['a','a','b','c'], ['a','b','c','d','e'], ['a','a','b','c','d','e']
all([A.count(i) == B.count(i) for i in A]) # False
all([A.count(i) == C.count(i) for i in A]) # True

Pero me preguntaba si habría algo más sucinto comoset(A).issubset(B,count=True) o una forma de mantenerse al margen de la lista de comprensiones. ¡Gracias!

Respuestas a la pregunta(4)

Su respuesta a la pregunta