I agree that the number of combinations of decks is vast and a great selling point, but I don’t follow your math.
The total number of combinations equals the total number of ways to choose 3, 4, or 5 hero decks multiplied by the total number of villain decks multiplied by the total number of environment decks:
NumCombos = NumHeroCombos * NumVillains * NumEnviros
The total number of ways to choose 3, 4, or 5 hero decks equals the number of ways to choose 3 hero decks plus the number of ways to choose 4 hero decks plus the number of ways to choose 5 hero decks:
NumHeroCombos = NumHeroCombos3 + NumHeroCombos4 + NumHeroCombos5
If we were allowing two versions of the same hero (as in Finest Legacy and Newest Legacy) to be used at the same time, then the number of ways to choose 3 hero decks would simply be the combinations one can form from the number of total heroes, choosing three:
NumHeroes = 19 (ten in base set, four in Rook City, four in Infernal Relics, Ambuscade, four promo heroes)
RawHeroCombos3 = Combinations(NumHeroes, 3) = 19! / ((19-3)! * 3!) = 19 * 18 * 17 / 6 = 969
But we are not allowing the use of a hero and his or her corresponding promo hero, so we need to subtract all of the instances when such a pair shows up in our combinations. In the case of choosing only three heroes, this is relatively simple, as we don’t have to worry about TWO pairs of a hero and a corresponding promo showing up at the same time. For any given hero/promo pair there are are 17 ways for it to show up, because there’s a third hero on the team. Since there are four hero/promo pairs, then the number of teams of three heroes that have a promo pair, and thus need to be discarded, are:
PromoCombos3 = 4 * Combinations((NumHeroes-2),1) = 4 * 17 = 68
NumHeroCombos3 = RawHeroCombos3 - PromoCombos3 = 901
For teams of four heroes, we again need to determine the raw number of teams and subtract the number of teams that have promo pairs in them, but we also need to consider that we could now have two different promo pairs in the same combination, so we need to be careful not to subtract that team twice from the total. Given that there are four possible promo pairs and that we would have two of them at a time, this is the combinations of four, choose two:
RawHeroCombos4 = Combinations(NumHeroes,4) = 19! / ((19-4)! * 4!) = 3,876
PromoCombos4 = 4 * Combinations((NumHeroes-2),2) = 4 * (17 * 16 / 2) = 544
PromoPromoCombos4 = Combinations(4,2) = 6
NumHeroCombos4 = RawHeroCombos4 - (PromoCombos4 - PromoPromoCombos4) = 3,338
For teams of five heroes, when considering how many teams have multiple promo pairs, we have to keep in mind that with a fifth team member, there will be many more combinations that have two promo pairs. To account for this the number of combinations of promo pairs is multiplied by the total number of heroes minus four (which represents the four heroes that make up the two promo pairs):
RawHeroCombos5 = Combinations(NumHeroes,5) = 19! / ((19-5!) * 5!) = 11,628
PromoCombos5 = 4 * Combinations((NumHeroes-2,3) = 4 * (17 * 16 * 15 / 6) = 2,720
PromoPromoCombos5 = Combinations(4,2) * 15 = 90
NumHeroCombos5 = RawHeroCombos4 - (PromoCombos5 - PromoPromoCombos5) = 8,998
Now we can add all of the ways to form three-hero, four-hero, or five-hero teams:
NumHeroCombos = NumHeroCombos3 + NumHeroCombos4 + NumHeroCombos5 = 901 + 3,338 + 8,998 = 13,237
And then we can multiple the number of hero combinations by the number of villain and environment decks:
NumVillains = 13 (four in base set, four in Rook City, four in Infernal Relics, and Ambuscade)
NumEnviros = 8 (four in base set, two in Rook City, two in Infernal Relics)
NumCombos = NumHeroCombos * NumVillains * NumEnviros = 13,237 * 13 * 8 = 1,376,648