Я бы сначала прошел через промежуточное представление, чтобы связать размер группы, которой принадлежит элемент, чтобы использовать его в сортировке.
>>> l2 = [(k,el,d[k][el],len(v)) for k,v in d.items() for el in v]
>>> l2
[('Red', 'Pesho', 10000, 1), ('Blue', 'Pesho', 10000, 2), ('Blue', 'Gosho', 10000, 2)]
, а затем отсортировать с помощью лямбда-функции, в которой используются 2 условия сравнения (score, size of group)
.
>>> sorted(l2, key=lambda x:(int(x[2]),x[3]),reverse=True)
[('Blue', 'Pesho', 10000, 2), ('Blue', 'Gosho', 10000, 2), ('Red', 'Pesho', 10000, 1)]