Consider two strings, S and T. Find the first k longest common non-overlapping substrings of S and T.
Depending on your application (and assuming I have correctly understood your general aim), a standard practical method will be to find all maximal repeated substrings between the two strings, number those substrings and then compute the longest increasing subsequence. This is exactly what the bioinformatics tool Reputer does. See http://bibiserv.techfak.uni-bielefeld.de/reputer/ and http://bioinformatics.oxfordjournals.org/content/15/5/426 for an original reference.
This is is slightly super-linear time overall as you have to compute the longest increasing subsquence (see e.g. http://en.wikipedia.org/wiki/Longest_increasing_subsequence ).