function MojiMoji(s1,s2:string):integer;
var
i : integer;
begin
result := 0;
for i := 1 to 4 do
begin
if StrScan((PChar(s1)) and (PChar(s2)),s2[i]) <> nil then
begin
Inc(result);
end;
end;
end;

例えば、s1='abcd' s2='bbef'と代入させた時に、
s1にはbが1個、s2にはbが2個含まれているので、
上記の関数を使うと、2という結果が返ってきます。
私が求めているのは、いくつ組が出来るかってことなので、
この場合は、1という結果が欲しいんです。
s1の2文字目のbとs2の1文字目のbという組が出来たら、
s1の2文字目のbとs2の2文字目のbは組として成立させないよう、
以降s1の2文字目のbは使わないようにしたいんです。

上記の関数をどう書き換えれば良いでしょうか?