code: def getallgroups(arr, k=-1):
      
      if k < 0:
          k = len(arr)
      return itertools.chain.from_iterable(itertools.combinations(set(arr), j)
                                           for j in range(1, k + 1))
docs: returns all the subset of @arr of size less than equalto @k
      the return array will be of size \sum_{i=1}^k nCi, n = len(arr)