the first doesn't work correctly for all strings (those with duplicate characters). the second is the right way to do it.
Both versions will work just fine. And number mod 7 will give an index of 0 to 6, which covers any color index from the colors tuple. Also, I tested it out just in case.
EDIT: The only issue is that if the string has a repeated letter it will be the same color.
Good point. I should know better than to dash off a quick code sample on HN without first running a test suite. :)