s += part каждый раз создаёт новую строку: старую копируют, добавляют part, старую отбрасывают. Итоговая сложность квадратичная, много аллокаций. Используйте strings.Builder и WriteString для накопления.
s += part
part
strings.Builder
WriteString