When creating a combination lock puzzle which requires you to find the combination, one of the things to keep in mind is to make sure it takes a far shorter amount of time to find the combination than to iterate through it without cheats.
What do I mean?
Suppose you have a 3-lever combination. You want the player to go through a lot of hurdles to find it. Sometimes, if the player is stupid, or is acting in good faith, he would find the combination. However, if the player doesn't like going through hurdles, he would simply iterate through every option.
Now, how long does it take to test every option?
Suppose it takes 3 seconds to flick the levers and test it. You will then go take (3 seconds) x (2 states ^ 3 levers), or 3 * 2 * 2 * 2 seconds to iterate through every option. That's barely under half a minute, and that's only if the combination is all on!