def cull_candidates(candidates, text, sep=' '):
    """Cull candidates that do not start with ``text``.

    Returned candidates also have a space appended.

    Arguments:
        :candidates: Sequence of match candidates.
        :text: Text to match.
        :sep: Separator to append to match.

    >>> cull_candidates(['bob', 'fred', 'barry', 'harry'], 'b')
    ['bob ', 'barry ']
    >>> cull_candidates(cull_candidates(['bob', 'fred', 'barry', 'harry'], 'b'), 'b')
    ['bob ', 'barry ']
    """
    return [c.rstrip(sep) + sep for c in candidates if c and c.startswith(text)]