Yes, it is possible. I will not write the PLC program, but will tell you HOW you can write it.
In fact, you can control 6 lights with only 3 discrete PLC outputs (if you limit your system to the special case of only allowing 1 light switch ON at a time). But you also need 3 relays to connect to the 3 PLC outputs. Each of these relays must be have 3-pole contacts, double-throw (3PDT configuration). Then it is a matter of "multiplexing" your Outputs, so that 6 Light Switch Inputs turn on the binary equivalent of 001, 010, 011, 100, 101, and 110 for the 3 PLC Outputs (Relay 1, Relay 2, and Relay 4). Then the Output relay contacts are then wired to the 6 lights as follows:
Light 1 = N.C. Relay 4 AND N.C. Relay 2 AND N.O. Relay 1 (001)
Light 2 = N.C. Relay 4 AND N.O. Relay 2 AND N.C. Relay 1 (101)
Light 3 = N.O. Relay 2 AND N.O. Relay 1 (011)
Light 4 = N.O. Relay 4 AND N.C. Relay 2 AND N.C. Relay 1 (100)
Light 5 = N.O. Relay 4 AND N.O. Relay 1 (101)
Light 6 = N.O. Relay 4 AND N.O. Relay 2 (110)
The above would be for 3 PLC outputs. When you add the 4th Output, you have enough numbers to allow for all possible combinations of Light Switches on at the same time (64 possible combinations where you count all switches off (000000) as the first one.