Regardez attentivement votre sortie:
5wlfgALGbXOahekxSs9wlfgALGbXOahekxSs5
^ ^ ^
J'ai mis en évidence les "5", "9", "5" de votre chaîne d'origine. Le Python join()
méthode est une méthode de chaîne, et prend une liste de choses à se joindre à la chaîne. Un exemple simple pourrait aider à expliquer:
>>> ",".join(["a", "b", "c"])
'a,b,c'
L' "," est inséré entre chaque élément de la liste donnée. Dans votre cas, votre "liste" est la représentation de chaîne "595", qui est considérée comme la liste ["5", "9", "5"].
Il semble que vous êtes à la recherche pour +
à la place:
print array.array('c', random.sample(string.ascii_letters, 20 - len(strid)))
.tostring() + strid