Which rules language are you willing to consider? If using pretty much any rules language except Rules DSL you can put the list into Item metadata. Then in the rule parse out the list from the metadata, figure out what the current value is and from there it’s a simple comparison to determine the next.
You could even record the current index into the list as metadata and then it become just increment the index and extract the metadata.
See Design Pattern: Using Item Metadata as an Alternative to Several DPs for some details on working with Item metadata.
If in Rules DSL you can use local variables and Maps or List or additional Items to do the same.