Hallo,
es gibt ja schon ein paar Antworten. Ich versuche mal einige theoretische Hinweise zu geben. Die Implementierung solltest du selbst machen, da es doch etwas aufwändig ist. Vorgefertigt gibt es hier nichts, du kannst aber einige Funktionen nutzen um dir die Ähnlichkeitssuche zu vereinfachen.
Ich würde zunächst mal den String in ein Array überführen. Als Trennzeichen für die einzelnen Elemente kannst du " " nehmen, da ich mal davon ausgehen, das dich leerzeichen nicht interessieren.
Du musst dir jetzt erstmal merken, welche Positionen die jeweiligen Teile im Gesamtstring haben, das geht zB über ein Array unter Nutzung der Zeichenkettenlänge (Vergiss die Leerzeichen dabei nicht zu addieren)
Jetzt müsstest du dir eine Tabelle bauen, die jede Zeichenkette im Array mit jeder anderen Vergleicht. Die Tabelle wird in diesem Zusammenhang vermutlich ein mehrdimensionales Array sein.
Da du ja nicht nur 1:1 Vergleichen willst, sondern auch ähnliche Zeichenkettenn haben willst (wie in deinem Bespiel; DVC und DVCF sind nicht gleich sondern ähnlich) würde ich dir empfehlen, dafür einen vordefinierten Algorithmus zur Ähnlichkeitssuche nehmen, z.B. LEVENTHSTEIN. Dieser rechnet dir die Distance zwischen den beiden Zeichenketten deiner Tabelle aus.
Es gibt noch eine paar andere Algorithmen, in PHP ist dieser aber definitiv vorhanden und bietet recht brauchbare Ergebnisse. Vermutlich musst du hier aber auch ein wenig experimentieren.
Wenn du das Ergebnis hast, musst du dich eigentlich nur noch entscheiden, welche Distanz du jetzt maximal für ähnlich akzeptieren würdest.
Das Ergebnis kannst du jetzt ausgeben und dir für jede Kombination die jeweiligen Positionen aus deiner zweiten Tabelle ausgeben lassen.
Vor dem Ausgeben wäre es vielleicht noch geschickt, die Pärchen zu sortieren und die Dupleten zu entfernen.
Wenn du das ganze dann noch in eine Funktion packst, hast du deinen Befehl
Ich hoffe ich konnte dir damit ein Stück weiterhelfen.
Viele Grüße,
Honeyhead