Teste se set é um subconjunto, considerando o número (multiplicidade) de cada elemento no conjunto

Eu sei que posso testar se set1 é um subconjunto de set2 com:

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

Mas o seguinte também é verdadeiro:

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

Como faço para considerar o número de vezes que um elemento no conjunto ocorre 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

Eu sei que poderia fazer 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

Mas eu queria saber se havia algo mais sucinto comoset(A).issubset(B,count=True)&nbsp;ou uma maneira de ficar de acordo com as compreensões da lista. Obrigado!