Pythons hash returns a 64 bit signed int on 64 bit systems. That is, the largest value without sign is 2^63, which is 9,223,372,036,854,775,808.
If you use the first three digits, you get values up to 922… values with 923, 924, etc. are 1 magnitude smaller and thus there are only 10% of those values.
You should use the last 3 digits or similar if you want a more uniform distribution.