Creates a min/max grouping for the inputted list of numbers.  This
    will shrink a list into the group sets that are available.
    
    :param      iterable | <iterable> | (list, tuple, set, etc.)
    
    :return     <generator> [(<int> min, <int> max), ..]

def group(iterable):
    """
    Creates a min/max grouping for the inputted list of numbers.  This
    will shrink a list into the group sets that are available.
    
    :param      iterable | <iterable> | (list, tuple, set, etc.)
    
    :return     <generator> [(<int> min, <int> max), ..]
    """
    numbers = sorted(list(set(iterable)))
    for _, grouper in itertools.groupby(numbers, key=lambda i, c=itertools.count(): i - next(c)):
        subset = list(grouper)
        yield subset[0], subset[-1]