Ah.. But mine also does all the animation including instructions on what the operator is to do as well as the Valid combinations auto reset, TBH, do not need the FB, just code it, it would save processing the passes to the FB.
Well MINE enforces only the combinations 1, 1-2, 1-2-3, or 1-2-3-4 (and empty as well, I think, which is silly).
Also, your combinations rung excludes the 2-only and 3-only cases. It could also be significantly simplified from your brute-force approach; maybe that would make a good post-Labor Day De Morgan's Theorem puzzler.
Lol, I did say in a previous post that the combinations were only a sample with that first rung, can add or take away any that are required/not required and the HMI tells you it's wrong or correct.
Btw, my latest code (two-rung implementation) has a bug that should cause an indirect address fault, but it won't happen in normal operation, and it's and easy fix.