def recursive_can_sum(numbers, target):
    """

    Parameters
    ----------
    numbers : list of integers
    target : int
        target sum

    Returns
    -------
    bool
        Boolean representing whether subsets exist which are equal to each other

    >>> recursive_can_sum([1, 2, 3, 4], 5)
    True

    """
    list_size = len(numbers)
    subsets = []

    def can_sum_helper(remaining_target, current_index):
        if remaining_target < 0:
            return False
        if remaining_target == 0:
            return True
        if current_index == list_size:
            return False
        if numbers[current_index] <= remaining_target:
            if can_sum_helper(remaining_target - numbers[current_index], current_index + 1):
                return True
        return can_sum_helper(remaining_target, current_index + 1)

    return can_sum_helper(target, 0)