Вот такой, без деталей, код.
CONST N =   8;
L =   1;
R = 18;
PROCEDURE AnyThing;
BEGIN
END AnyThing;
PROCEDURE Srch ( i : INTEGER );
VAR k : INTEGER;
BEGIN
FOR k := L TO R DO
IF i < N THEN Srch (i+1)
ELSE AnyThing
END
END
END Srch;
PROCEDURE Main*;
BEGIN
Srch (0)
END Main;

Всё работает, когда N,L,R малы. Стоит поставить так как выше приведено (8, 1, 18),
то система зависает.
Рискну предположить, что-то типа исчерпания стека?