The best way to make variety in games is to limit the number of mechanics you actually include, and instead create variety in the ways you apply them. Portal had one notable mechanic, that being the portal gun itself, but used it for scaling high ledges, redirecting projectiles, building momentum, bypassing grates, dropping cubes on turrets... A single mechanic (combined with standard minor mechanics such as walk, jump, and carry) found quite a wide variety of uses, even in a fairly short game.
Another example is Super Mario Galaxy, which has a far wider variety of mechanics available, but all working toward the same goal: movement. Mario jumps, spins, runs, swims, stomps, wall jumps, ducks, long jumps... but at it's core, those all serve only two purposes, to attack enemies, and to get from point A to point B. Variety in the game doesn't come from his moveset, but from the way he uses it. Sometimes spinning hits an enemy, sometimes it hits a projectile and sends it toward an enemy, sometimes it makes star bits appear in surrounding grass, sometimes it activates a sling star. Totally different outcomes, but essentially all the same move.
This isn't to say that all games necessarily need to do this. Variety can also come from level design, or even randomization. but when you try to add variety by dividing your game into totally unrelated mechanics that don't complement each other and only serve to completely change the flow of the game, all you're doing is making the game as a whole less fluid (Metroid: Other M's final boss).
P.S. Thanks