However, since the 3rd and 4th gen both have 8 HMs, an interesting question arises: which two pokemon can I pair together so that the two of them know all 8 HMs? Well, I've recently upgraded my pokemon program enough that it's able to figure this stuff ought!
For starters, let's begin with the 4th gen since that's what is currently out. Naturally, all of these lists leave out Smeargle because he can't be just taught them, he has to Sketch them all, and he trivially solves the problem anyways.
id | name | test
--------------------------------------------------------------------------------------------------------------------
3 | Venusaur | dragonite
6 | Charizard | golduck+kabuto+ludicolo+swampert+feraligatr+omastar+bibarel+kabutops+empoleon+poliwrath+blastoise
9 | Blastoise | dragonite+charizard+skarmory+tropius+salamence
27 | Sandshrew | dragonite
28 | Sandslash | dragonite
31 | Nidoqueen | dragonite
34 | Nidoking | dragonite
55 | Golduck | charizard+salamence+tropius+dragonite+skarmory
62 | Poliwrath | charizard+salamence+skarmory+tropius+dragonite
108 | Lickitung | dragonite
112 | Rhydon | dragonite
115 | Kangaskhan | dragonite
127 | Pinsir | dragonite
128 | Tauros | dragonite
139 | Omastar | salamence+tropius+dragonite+charizard
140 | Kabuto | salamence+tropius+charizard+dragonite+vibrava+aerodactyl+flygon
141 | Kabutops | flygon+salamence+vibrava+aerodactyl+tropius+charizard+dragonite
142 | Aerodactyl | bibarel+kabutops+kabuto+empoleon+feraligatr
143 | Snorlax | dragonite
154 | Meganium | dragonite
157 | Typhlosion | dragonite
160 | Feraligatr | tropius+flygon+dragonite+skarmory+aerodactyl+salamence+vibrava+charizard
208 | Steelix | dragonite
217 | Ursaring | dragonite
227 | Skarmory | empoleon+blastoise+bibarel+poliwrath+swampert+feraligatr+golduck+ludicolo
248 | Tyranitar | dragonite
254 | Sceptile | dragonite
257 | Blaziken | dragonite
260 | Swampert | skarmory+tropius+dragonite+charizard+salamence
272 | Ludicolo | salamence+dragonite+charizard+tropius+skarmory
288 | Vigoroth | dragonite
289 | Slaking | dragonite
295 | Exploud | dragonite
296 | Makuhita | dragonite
297 | Hariyama | dragonite
306 | Aggron | dragonite
329 | Vibrava | kabuto+kabutops+empoleon+feraligatr+bibarel
330 | Flygon | empoleon+kabuto+kabutops+bibarel+feraligatr
357 | Tropius | kabuto+kabutops+omastar+empoleon+swampert+poliwrath+golduck+feraligatr+bibarel+ludicolo+blastoise
373 | Salamence | swampert+omastar+empoleon+bibarel+feraligatr+poliwrath+blastoise+ludicolo+golduck+kabutops+kabuto
387 | Turtwig | dragonite
388 | Grotle | dragonite
389 | Torterra | dragonite
390 | Chimchar | dragonite
391 | Monferno | dragonite
392 | Infernape | dragonite
395 | Empoleon | aerodactyl+dragonite+tropius+charizard+skarmory+flygon+vibrava+salamence
400 | Bibarel | skarmory+flygon+vibrava+salamence+dragonite+tropius+aerodactyl+charizard
409 | Rampardos | dragonite
443 | Gible | dragonite
444 | Gabite | dragonite
445 | Garchomp | dragonite
446 | Munchlax | dragonite
452 | Drapion | dragonite
454 | Toxicroak | dragonite
463 | Lickilicky | dragonite
464 | Rhyperior | dragonite
If you take any pokemon on the left and pair him up with a pokemon on the right, the two of them should be able to learn all 8 HMs! smile (I've intentionally left Dragonite out because he stretches the table)--------------------------------------------------------------------------------------------------------------------
3 | Venusaur | dragonite
6 | Charizard | golduck+kabuto+ludicolo+swampert+feraligatr+omastar+bibarel+kabutops+empoleon+poliwrath+blastoise
9 | Blastoise | dragonite+charizard+skarmory+tropius+salamence
27 | Sandshrew | dragonite
28 | Sandslash | dragonite
31 | Nidoqueen | dragonite
34 | Nidoking | dragonite
55 | Golduck | charizard+salamence+tropius+dragonite+skarmory
62 | Poliwrath | charizard+salamence+skarmory+tropius+dragonite
108 | Lickitung | dragonite
112 | Rhydon | dragonite
115 | Kangaskhan | dragonite
127 | Pinsir | dragonite
128 | Tauros | dragonite
139 | Omastar | salamence+tropius+dragonite+charizard
140 | Kabuto | salamence+tropius+charizard+dragonite+vibrava+aerodactyl+flygon
141 | Kabutops | flygon+salamence+vibrava+aerodactyl+tropius+charizard+dragonite
142 | Aerodactyl | bibarel+kabutops+kabuto+empoleon+feraligatr
143 | Snorlax | dragonite
154 | Meganium | dragonite
157 | Typhlosion | dragonite
160 | Feraligatr | tropius+flygon+dragonite+skarmory+aerodactyl+salamence+vibrava+charizard
208 | Steelix | dragonite
217 | Ursaring | dragonite
227 | Skarmory | empoleon+blastoise+bibarel+poliwrath+swampert+feraligatr+golduck+ludicolo
248 | Tyranitar | dragonite
254 | Sceptile | dragonite
257 | Blaziken | dragonite
260 | Swampert | skarmory+tropius+dragonite+charizard+salamence
272 | Ludicolo | salamence+dragonite+charizard+tropius+skarmory
288 | Vigoroth | dragonite
289 | Slaking | dragonite
295 | Exploud | dragonite
296 | Makuhita | dragonite
297 | Hariyama | dragonite
306 | Aggron | dragonite
329 | Vibrava | kabuto+kabutops+empoleon+feraligatr+bibarel
330 | Flygon | empoleon+kabuto+kabutops+bibarel+feraligatr
357 | Tropius | kabuto+kabutops+omastar+empoleon+swampert+poliwrath+golduck+feraligatr+bibarel+ludicolo+blastoise
373 | Salamence | swampert+omastar+empoleon+bibarel+feraligatr+poliwrath+blastoise+ludicolo+golduck+kabutops+kabuto
387 | Turtwig | dragonite
388 | Grotle | dragonite
389 | Torterra | dragonite
390 | Chimchar | dragonite
391 | Monferno | dragonite
392 | Infernape | dragonite
395 | Empoleon | aerodactyl+dragonite+tropius+charizard+skarmory+flygon+vibrava+salamence
400 | Bibarel | skarmory+flygon+vibrava+salamence+dragonite+tropius+aerodactyl+charizard
409 | Rampardos | dragonite
443 | Gible | dragonite
444 | Gabite | dragonite
445 | Garchomp | dragonite
446 | Munchlax | dragonite
452 | Drapion | dragonite
454 | Toxicroak | dragonite
463 | Lickilicky | dragonite
464 | Rhyperior | dragonite
Unfortunately, from this list you might notice that there are no two 4th gen pokemon that can be used ; you have to use a pokemon from a previous generation in order complete the list.
However, if you play through the game as much as I do, there's an interesting subset of that list to note:
id | name | test
-------------------------------------
140 | Kabuto | aerodactyl+tropius
142 | Aerodactyl | kabuto
357 | Tropius | kabuto
These pokemon groups can learn all 8 HMs, but most importantly none of them have to evolve in order to do so! This means you can go to your box and hatch a Kabuto egg and either a Tropius or an Aerodactyl egg and you'll have the two HM slaves you need! Nifty, eh?-------------------------------------
140 | Kabuto | aerodactyl+tropius
142 | Aerodactyl | kabuto
357 | Tropius | kabuto
Now, on to the third gen, the HMs there are so much more common that I was able to restrict the lists to Hoenn Dex pokemon only. This is great because it means these combos will work even in Pokemon Emerald:
/Users/ekraft/pokemon > pokesearch -i standard hm -c "hm:dex3 && size(moveset*hms_3rd)>=4 && name!=smeargle && ~legendary" -c "test:{x:pokemon}{value(x,&hm) && size((value(x,&moveset)+moveset)*hms_3rd)==8}" "size(test)>0" -d test
id | name | test
-------------------------------------------
227 | Skarmory | wailord+wailmer
320 | Wailmer | tropius+skarmory
321 | Wailord | skarmory+tropius
357 | Tropius | relicanth+wailord+wailmer
369 | Relicanth | tropius
Of those, Wailord is obviously the only one that would need to be evolved.id | name | test
-------------------------------------------
227 | Skarmory | wailord+wailmer
320 | Wailmer | tropius+skarmory
321 | Wailord | skarmory+tropius
357 | Tropius | relicanth+wailord+wailmer
369 | Relicanth | tropius
One thing really nice to note about this is that Relicanth and Wailord show up on there. You may or may not know, but the two of them are vital to the acquisition of the Regis. Nice to know that they could have a place on your team. smile