Проверьте, является ли множество подмножеством, учитывая количество (кратность) каждого элемента в наборе

Я знаю, что могу проверить, является ли set1 подмножеством set2 с помощью:

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

Но верно и следующее:

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

Как мне это учесть, сколько раз элемент в наборе встречается так, чтобы:

{'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

Я знаю, что мог бы сделать что-то вроде:

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

Но мне было интересно, есть ли что-то более лаконичное, какset(A).issubset(B,count=True) или способ избежать списков. Спасибо!

Ответы на вопрос(4)

Ваш ответ на вопрос