Это классический алгоритм:
Расстояние Левенштейна
Только вам нужно не расстояние левенштейна (число), а та матрица, которая формируется в функции. Она прямо указывает на то, что нужно добавить/удалить в первой строке чтобы получить вторую (минимальные изменения).
И тогда даже если строки будут обрамлены и между ними чтото:
str1 = "iii common lll part xxx";
str2 = "jjj common mmm part yyy";
или не стоит
str1 = "iii common lll part xxx";
str2 = "jjj common part yyy";
в любом случае он покажет статичную часть
" common part "
Перед использованием вам надо скопировать строки в другие переменные, привести все символы обоих строк к одному регистру: либо все буквы заглавные, либо все буквы маленькие. Так будет проще сравнивать.