nekey975
Не знаю, подойдет ли Вам, но вот решение “в лоб”
Да, первое что приходит на ум это банальный перебор, но принцип DRY заставил подумать еще(не уверен конечно, что DRY тут уместен, но все же), как говорится, не дай себе засохнуть

SenhionПро генераторы списков ответили выше, а про groupby можно читнуть тут
и непонятно что за group