Как-то так. Слово = от 2 букв. В строке "аннаанна" - 8 четных пересекающихся палиндромов
var s, w : string;
i,j : integer;
function IsPalindrome(s : string) : boolean;
var i, max, len : integer;
begin
len := length(s);
Result := true;
for i := 1 to ceil(Length(s) / 2) do
begin
if s[i] <> s[len - i + 1] then
begin
Result := false;
break;
end;
end;
end;
begin
s := 'аннааннабобпотоп';
for i := 1 to length(s)-1 do
begin
for j := 2 to length(s) - i + 1 do
begin
w := copy(s,i,j);
if Length(w) mod 2 = 0 then
begin
write(w);
if IsPalindrome(w) then write(' - палиндром');
writeln('');
end;
end;
end;
end.