docs: def iterator_product(variables: VarType, parent: str = None) -> Iterable[VarMatrix]:
      """Apply the product operator to a set of variables.
  
      This uses the python itertools.product iterator to combine multiple variables
      such that all possible combinations are generated. This is the default iterator
      however this is a method of manually specifying the option.
  
      Args:
          variables: The variables object
          parent: Unused
  
      """
      logger.debug("Yielding from product iterator")
      if isinstance(variables, list):
          raise ValueError(
              f"Product only takes mappings of values, got {variables} of type {type(variables)}"
          )
  
      yield list(variable_matrix(variables, parent, "product"))