def get_candidate_values(df, feature_name):
    """
    Find candidate splits for given feature.

    Arguments:
    df -- pandas.DataFrame to use to find candidate values for splitting
    feature_name -- column name to find cnadidate values for

    Returns:
    Tuples (feature_name, feature_value) for candidate splitting values
    """

    # use groupby to find the values for this feature
    cnts = df.groupby([feature_name]).size()

    # only one value, so can't split on this
    if (len(cnts)==1):
        return []

    # get the feature values
    feature_values = cnts.index.values

    # return tuples
    return [(feature_name, feature_value) for feature_value in feature_values]