def findPeakCluster(index, build_list, df, peak_gap):
    """
    Recursively finds members of a peak cluster starting from the peak with
    the smallest size.
    
    Parameters
    ----------
    index : TYPE Integer
        DESCRIPTION. The index of df that corresponds to the
                     rows (i.e. peaks) that are clustered (within peak_gap
                     of each other) and awaiting to be processed to give 
                     fewer peaks.
    build_list : TYPE List
        DESCRIPTION. List of index of peaks in peak clusters
    df : TYPE Pandas dataframe
        DESCRIPTION. Dataframe of cleaned GeneScan datasheet.
    peak_gap : TYPE Integer
        DESCRIPTION. User-supplied. A pair of peaks within peak_gap of
                     each other will be processed to give one peak.

    Returns
    -------
    TYPE List
    A list of index corresponding to peaks in a peak cluster. 
    """    
    # Return build_list if we reach the end of dataframe
    if index == max(df.index):
        return list(set(build_list))
    # Stop recursion when next peak is not within peak_gap of current peak
    elif df.loc[index + 1, "Size"] - df.loc[index, "Size"] > peak_gap:
        return list(set(build_list))
    # Recursion to next peak
    else:
        build_list += [index, index + 1]
        return findPeakCluster(index + 1, build_list, df, peak_gap)