Я уже задавал этот вопрос ранее:
Создайте строку S так, чтобы максимальное расстояние от S до каждой строки в наборе было как можно меньше
и Я предоставил код, который я написал для генерации случайной строки с использованием строк, указанных в setofstr. Как показано здесь:
answer = []
for l in zip(*s):
answer.append(l[randint(0,len(s)-1)])
answer = ''.join(answer)
print(answer)
Однако мне было интересно, как бы я использовал это, чтобы придумать алгоритм подъема на холм для решения этой проблемы. Таким образом, возможное решение заменяется только в том случае, если следующее возможное решение оказывается лучше.