A lever-controlled combination lock shouldn't be too complicated, as long as you're willing to live with increments of one, and a 200 step wait between lever pulls. For each 0-9 dial, just build a 10-step increment-by-one counter (several ways to do this, I'm partial to interrupted repeaters), a simple device that turns on when toggled by the desired lever, causing water to be pumped onto a plate which sends a signal to the counter to go up by one as well as immediately resetting itself by turning off the feeding pump and turning on a second one to drain the tile. This would require a wait between pulls of at least 100 ticks, but two fast consecutive pulls should actually be able to increase the counter by two, making it a little harder to screw up by input.
Triggering stuff with counters is as simple as linking triggers to mechanical logic gates, which can be made extremely compact for any AND/OR combination. If you're feeling particularly evil, make the the different levers cause different counter increments, then add "trap" combinations, or make the dials represent a single long counter (say 0-999) and make the levers work in increments of say, 3, 7 and 11, with a defined target number to reach. The latter variant can be designed to be quite diabolical, I think I might have to steal this idea for one of my fortresses.