<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def get_values_and_permissible(values: Iterable[Tuple[Any, str]], add_none: bool = False, none_description: str = "[None]") \ -> Tuple[List[Tuple[Any, str]], List[Any]]: """ Used when building Colander nodes. Args: values: an iterable of tuples like ``(value, description)`` used in HTML forms add_none: add a tuple ``(None, none_description)`` at the start of ``values`` in the result? none_description: the description used for ``None`` if ``add_none`` is set Returns: a tuple ``(values, permissible_values)``, where - ``values`` is what was passed in (perhaps with the addition of the "None" tuple at the start) - ``permissible_values`` is a list of all the ``value`` elements of the original ``values`` """

    permissible_values = list(x[0] for x in values)
    # ... does not include the None value; those do not go to the validator
    if add_none:
        none_tuple = (SERIALIZED_NONE, none_description)
        values = [none_tuple] + list(values)
    return values, permissible_values