Given a List of Iterables (over some X), execute the action for each combination of X values, one from each Iterable.
Use recursion for simplicity.