Первое, о чем я обычно думаю, это директива % q - но, поскольку вы, кажется, используете все знаки препинания, которые вы обычно используете, чтобы разделить их, я не могу думать простого способа заставить его работать здесь.
Второе, о чем я подумаю, это наследственность:
mystring = <<END
`~!@#$%^&*()_-+={}|[]\:";'<>?,./
END
Это ломается после обратной косой черты.
Итак, мой третий ответ, неуклюжий, но лучшее, что я могу придумать, подумав всего две минуты, - это заменить что-то безобидное для «проблемных» символов, а затем заменить его после задания:
mystring = '`~!@#$%^&*()_-+={}|[]\:"; <>?,./'.tr(" ","'")
Мне это не нравится, но это работает.