docs: def list_expand(d, prefix=None):
      """
      Recursively expand dictionaries into lists
      e.g. list_expand({1:{2:[3,4]}, 5:[6]}) == [(1,2,3), (1,2,4), (5,6)]
      """
      if prefix is None:
          prefix = tuple()
      for k in d:
          if isinstance(d, dict):
              for i in list_expand(d[k], prefix=tuple(chain(prefix, (k,)))):
                  yield i
          else:
              yield tuple(chain(prefix, make_list(k)))