pandas: diagrama de dispersión con diferentes leyendas de color para cada punto

A partir del siguiente ejemplo:

fig, ax = plt.subplots()

df = pd.DataFrame({'n1':[1,2,1,3], 'n2':[1,3,2,1], 'l':['a','b','c','d']})

for label in df['l']:

    df.plot('n1','n2', kind='scatter', ax=ax, s=50, linewidth=0.1, label=label)

lo que obtuve es el siguiente diagrama de dispersión:

Ahora estoy tratando de establecer un color diferente para cada uno de los cuatro puntos. Sé que puedo recorrer un conjunto de, por ejemplo, 4 colores en una lista como:

colorlist = ['b','r','c','y']

pero dado que mi conjunto de datos real comprende al menos 20 puntos diferentes, estaba buscando una especie de "generador de color" para hacer un bucle dentro de él.

Respuestas a la pregunta(3)

Su respuesta a la pregunta