Hah, this is pretty interesting. I actually built almost the exact same thing a while back. Only a few differences; mine was 9 digits, and I didn't show the user if they were right or not. Also, I used a button for the programming part, and it automatically resets/deletes the old combo when you go into programming mode. Mine automatically resets the combination if you get a single digit wrong too oh, I also hooked it up to a simple 7-digit display that I had sitting around not doing anything a 16-segment seemed pretty overkill xD What does yours do about the input combination being wrong?
Once I have the time, I think I may implement a 9 button input pad and make the combination 5 digits long instead of 4. I'm researching ways to more efficiently store the combination, which would sacrifice simplicity and modularity, to my disappointment.