code: def divide(n, iterable):
      
  
      seq = tuple(iterable)
      q, r = divmod(len(seq), n)
  
      ret = []
      for i in range(n):
          start = (i * q) + (i if i < r else r)
          stop = ((i + 1) * q) + (i + 1 if i + 1 < r else r)
          ret.append(iter(seq[start:stop]))
  
      return ret
docs: split an iterable into n groups, per https://more-itertools.readthedocs.io/en/latest/api.html#grouping
  
      :param int n: Number of unique groups
      :param iter iterable: An iterable to split up
      :return: a list of new iterables derived from the original iterable
      :rtype: list