Suppose you would like to analyze the combinations only until you have found a "match" and then stop the iteration.
Wouldn't it be better to use the Visitor pattern for each generated combination to avoid the creation of all combinations in ComplexCombinationIterator#init() method for the iterator in the _resultSet variable?
See: https://en.wikipedia.org/wiki/Visitor_pattern
Suppose you would like to analyze the combinations only until you have found a "match" and then stop the iteration. Wouldn't it be better to use the Visitor pattern for each generated combination to avoid the creation of all combinations in ComplexCombinationIterator#init() method for the iterator in the _resultSet variable? See: https://en.wikipedia.org/wiki/Visitor_pattern