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

*Related*