Minimal group of Pokémon for the complete exploration moves set
According to gaymer_dude on Reddit:
Since, according to this thread, Sharpedo is the best Pokemon to Surf on, I did some research. Sharpedo can learn Surf, Cut, Dive, and Waterfall. Skarmory, a good Pokemon in its own right, learns the other moves you need (Fly, Cut, and Rock Smash). So that's pretty neat!
So the smallest group of explorers is 2
There are many combinations of just two Pokémon that can cover every HM.
The Pokemon Database has this awesome chart that can be used to find "HM slaves". I find it most useful to filter "Hoenn only", and then sort by the rightmost column (total number learnable). It should look something like this snippet:
The first thing I notice is that Cut and Fly aren't very common together, so if we cover both of those with one guy (plus at least one more to make 3+), that will leave us more options for the other.
For that, your options are Latias, Latios, Tropius, and Salamence. You can then pick anything in the top 15 or so on the chart (and others below, depending on which 3rd/4th moves you give them), giving plenty of combos already. Personally, I'm a fan of Tropius for this role, if only to give his existence meaning. He's just so sad otherwise. He can learn Cut/Fly/Strength/RockSmash, so the only things needed are Surf/Waterfall/Dive, which are commonly all available on one Pokémon (most decent water types).
Of course, you could use separate Cut/Fly pokes, and that opens up a few more possibilities. For example, you can cover all your bases with Crawdaunt(everything but Fly) and any flier with at least 3 HMs available.
In the end, there are a lot of ways you can do it. Pick your favorites and go with that.