code: def iter_all_dict_combinations_ordered(varied_dict):
      
      tups_list = [[(key, val) for val in val_list]
                   for (key, val_list) in six.iteritems(varied_dict)]
      dict_iter = (OrderedDict(tups) for tups in it.product(*tups_list))
      return dict_iter
docs: Same as all_dict_combinations but preserves order