def METHOD_NAME(name, alphabet, default="#FFFFFF"):
    """
    Get a color scheme by name and alphabet.
    A color scheme is a list of colors that correspond to symbols of an
    alphabet. The color for a symbol is list of colors indexed by the
    corresponding symbol code.
    Parameters
    ----------
    name : str
        The name of the color scheme.
    alphabet : Alphabet
        The alphabet to obtain the scheme for. The alphabet of the
        scheme must equal or extend this parameter.
    default : str or tuple, optional
        A *Matplotlib* compatible color that is used for symbols that
        have no defined color in the scheme.
    Returns
    -------
    colors : list
        A list of *Matplotlib* compatible colors. The colors in the list
        have the same order as the symbols in the given `alphabet`.
        Since the alphabet of the color scheme may extend the given
        `alphabet`, the list of colors can be longer than the
        `alphabet`.
    Notes
    -----
    There can be multiple color schemes with the same name but for
    different alphabets (e.g. one for dna and one for protein
    sequences).
    Examples
    --------
    >>> alphabet = NucleotideSequence.alphabet_unamb
    >>> color_scheme = get_color_scheme("rainbow", alphabet)
    >>> print(color_scheme)
    ['#3737f5', '#37f537', '#f5f537', '#f53737']
    """
    for scheme in _color_schemes:
        if scheme["name"] == name and scheme["alphabet"].extends(alphabet):
            colors = scheme["colors"]
            # Replace None values with default color
            colors = [color if color is not None else default
                      for color in colors]
            # Only return colors that are in scope of this alphabet
            # and not the extended alphabet
            return colors[:len(alphabet)]
    raise ValueError(f"Unkown scheme '{name}' for given alphabet")