Automatically generate N distinct colors – A python script

Inspired by discussions here, I coded up a python script to generate N (<=20) distinct colors in RGB.

"""
To generate N distinct colorcode, N < 20
First created by Junwei Huang, March 21 2013
"""
from numpy import *
import matplotlib.pyplot as plt

def hex_to_rgb(value):
	value = value.lstrip('#')
	lv = len(value)
	return tuple(int(value[i:i+lv/3], 16) for i in range(0, lv, lv/3))

N=60

ColourValues=["FF0000", "00FF00", "0000FF", "FFFF00", "FF00FF", "00FFFF", "000000",
        "800000", "008000", "000080", "808000", "800080", "008080", "808080",
        "C00000", "00C000", "0000C0", "C0C000", "C000C0", "00C0C0", "C0C0C0",
        "400000", "004000", "000040", "404000", "400040", "004040", "404040",
        "200000", "002000", "000020", "202000", "200020", "002020", "202020",
        "600000", "006000", "000060", "606000", "600060", "006060", "606060",
        "A00000", "00A000", "0000A0", "A0A000", "A000A0", "00A0A0", "A0A0A0",
        "E00000", "00E000", "0000E0", "E0E000", "E000E0", "00E0E0", "E0E0E0"]
M=len(ColourValues)

plt.figure()
plt.hold('on')
for i in range(N):
	plt.bar(i,1.0,color="#"+ColourValues[mod(i,M)])
	print hex_to_rgb(ColourValues[mod(i,M)])

plt.show()

As seen in the figure, it is distinct if N < 20.

RGB color code

RGB color code