def unique_id():
available_chars = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', \
'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', \
'0', '1', '2', '3', '4', '5', '6', '7', '8', '9'];
available_char_count = len(available_chars)
timestamp = int(time.time() * 1000)
# First char
char_index = timestamp % available_char_count
timestamp /= available_char_count
uuid = available_chars[char_index]
last_char = available_chars[char_index]
available_char_count -= 1
for i in xrange(9):
currently_available_chars = list(available_chars)
currently_available_chars.remove(last_char)
char_index = timestamp % available_char_count
timestamp /= available_char_count
uuid = currently_available_chars[char_index] + uuid
last_char = currently_available_chars[char_index]
return uuid
这应该可以工作,除非您的系统不提供time.time() 支持低于 1 秒的分辨率。如果是这种情况,则每秒只能生成一个新的唯一 ID。