3:ab # for @set=(c,d); return to 2 4:abc # ... 4:abd # ... #### 4:abc # for @set=(d); return to 3 5:abcd # print result; return to 4 # ... later 4:abd # for @set=(c); return to 3 5:abdc # print result; return to 4