The most common (and sensible) way to do something like this, is to create a back-end database (identifying all the types, styles and options) and then make the calls as the customer selects each component.
So for example, if your customer choose style b, they may only be able to see finishes k, m and s, Having chosen s, perhaps they can now only have colours a1, b4 and d7 and so on. It's complex, but the database is written in such a manner as to only provide the correct options. The web page would interact with the database via php.
It could possibly be done with a series of php forms, but that's a cumbersome way of doing it. For example, if you had 3 styles, with 3 finishes and 3 wood types, you straight away have 27 potential combinations. Now if you expand that to 3 stains, you've got 81 potential options! I know you said some combinations are not available, but it's still a lot on only 3 base products!
Either way, you need some specialist coding skills to achieve your goal.
How you present it on your page is personal choice, but probably a tick box type of presentation is preferable. One system I came across recently presented the options as images, and you simply clicked on the image - very nice and I suspect, very expensive!