pandas - gráfico de dispersão com legenda de cores diferentes para cada ponto

A partir do seguinte exemplo:

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)

o que eu obtive é o seguinte gráfico de dispersão:

Agora estou tentando definir uma cor diferente para cada um dos quatro pontos. Eu sei que posso fazer um loop sobre um conjunto de, por exemplo, 4 cores em uma lista como:

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

mas como meu conjunto de dados real inclui pelo menos 20 pontos diferentes, eu estava procurando por uma espécie de "gerador de cores" para fazer um loop nele.

questionAnswers(3)

yourAnswerToTheQuestion