text="""ttcode test hash code testhashcode test codehash"""# целевой текст
endpos=0
match= regex.search(text,endpos)
matches=[]# массив с совпадениями
strings=[]# все остальное что не совпало, при этом если два совпадения подряд, или начало (конец) строки и совпадение, то в этот массив попадает пустая строка
# поэтому значения в массивах чередуются относительно целевой строки
while(match):
strings+=[ text[endpos:match.start()]]
endpos= match.end()
matches+=[match.group(0)]
match= regex.search(text,endpos)
if(endpos==len(text)): strings+=[""]
random.shuffle(matches)
result=""# собираем строку обратно с перемешанными данными