Yesterday someone posed the following challenge on the /r/hockey community:

Can you find three players who, between the three of them, have played for all 30 teams?

The challenge was pretty simple. The 30 teams were the 30 active NHL franchises. (So someone who played for the Atlanta Thrashers would count as a Winnipeg Jet, etc.) I made it a personal rule to exclude WHA seasons so that means WHA-era Edmonton Oilers, Quebec Nordiques, etc., were out of the picture. Only NHL seasons with those franchises would count.

And when it became apparent that the challenge could not be answered favorably, I decided to figure out the maximum number of teams I could cover with different sized combinations of players. The results are as follows:

## One Player – 12 Teams

This was an easy one. Most hockey fans know that Mike Sillinger is the king of the suitcase. Over his 17 season NHL career he played 1,049 games spread across 12 different teams. He was involved in 10 separate trades. He never spent more than 4 seasons with a single team (Detroit – although he only played 3 games in his inaugural season) and maxed out at 155 games with a single team (Columbus).

The next closest players have all played for 10 teams: JJ Daigneault, Jim Dowd, Olli Jokinen, Michel Petit, and Mathieu Schneider.

## Two Players – 19 Teams

There are four such pairs of players in NHL history who have played for 19 different franchises between them. And all of these pairs share Mike Sillinger in common. His companions here are Jim Dowd, Bryan Marchment, Dominic Moore, and Lee Stempniak.

So the futures for Moore and Stempniak could see them moving their respective pair up to top spot in this category if they move on to the right team next year. Stempniak’s resurgence with the Devils and continued success with the Bruins should help him land a contract next year (at the tender age of 34). Moore, despite being 36 next year, could possibly find a new home. He still has a good reputation as a dependable fourth line center in this league.

## Three Players – 25 Teams

So the original challenge: 30 teams among 3 players. Can’t even get close. We top out at 25 teams in three separate trios. Even more shocking: The first one listed does not contain Mike Sillinger! Instead, they all share Grant Ledyard. Ledyard played 18 seasons in the league spread among 10 different teams. He did play five years each with Dallas and Buffalo in the middle of his career, but the bookends of his time in the league involved a lot of roaming. The trios were:

- JJ Daigneult, Grant Ledyard, Bryan Marchment
- Jim Dowd, Grant Ledyard, Mike Sillinger
- Grant Ledyard, Bryan Marchment, Mike Sillinger

Ledyard probably ended up in all three lists because of the teams he played for. Among the 24 players who played for 9+ teams, it was most difficult to find players for Columbus (only 1 player), Buffalo (2 players), and Washington (3 players). Sillinger was great because he had played for Columbus, but a lot of his other destinations were places that had had 8+ other players play there. As a result, he was prone to “overlapping.” Ledyard played with Buffalo and Washington and played mostly for teams with 6 or less other “overlappers.”

## Four Players – 29 Teams

This outcome totally sucks. With Carter Anson, Dominic Moore, Mike Sillinger, and Jarrod Skalde, I maxed out at only 29 teams! Why are you doing this to me Colorado? Fortunately Dominic Moore is still active so there is that teeny, tiny chance that this gets fixed next year, but I doubt it.

Calculating this with four players required me to move towards a programming solution. I did find a 25-team trio running through combinations in Excel, but I was not able to exhaust my search that way. And then I found a source that let me expand my pool to players with 8+ teams on their resumes, which put this all out of the reach of handwork.

I had a 54 player pool, which meant I would have to run through 316,251 different combinations. So I wrote a script in python to do it for me and keep track of the results. The frequency of the results can be found in the chart to the right. The data seems to be normally distributed with a mean of approximately 21.5. (Or maybe it’s more like a binomial distribution? I’m bad at stats so please correct me.) The range of the data is from 14 to 29.

## Five Players – 30 Teams

As can be deduced from the previous section, you can easily find five players who, between them, have played on all 30 active franchises. There are literally hundreds of combinations stemming off the Anson + Moore + Sillinger + Skalde quartet above. And I would not be surprised to know there are hundreds or even thousands more that can be formed with any of the 54 quartets that cover 28 teams, the 509 quartets that cover 27 teams, etc.

## Disclaimer

So it’s worth noting that the player pool I worked with only included those who had played for 8 or more NHL teams in their career. In the 54 player pool I used in my programmatic approach, I removed players with less than 8 teams due to defunct teams (e.g., Carl Voss) or from “doubled up” teams due to relocations (e.g., Hartford moving to Carolina).

I can confidently stand by my one player result for obvious reasons. My two player result cannot be beaten by a player with 7 or less teams to their credit, but it could possibly be tied. So both of those results as a maximum number will stand.

But I cannot rule out the possibility of there being higher results for three or four person combinations. A 7-team player and any of the four pairs that cover 19-teams could possibly form a 26-team trio. Similarly, Sillinger and two 7-team players could also reach 26. Similarly for quartets, there are a number of scenarios in which including 7-, 6-, or even 5-team players could lead to covering all 30 teams. And considering how much the player pool grows when going down as far as 5-teams, it becomes slightly plausible that a 30-team quartet does indeed exist.

So overall, I have an interest in adding 7-team player data to my set to determine what effect it might have on the results. I don’t see it being a challenge programmatically; the challenge seems to be finding an easy enough data source to work with. However, if I need to dive down into 6-team and 5-team data sets I might start encountering some challenges with my limited programming knowledge.Nonetheless, if any of you know where I might be able to come across helpful data sets, please let me know.