<?php

$AA = array('a','b','c');
$BB = array();

    function gen($A, $B, $idx) {
      if ($idx < 0) {
      	    if(sizeof($B)>0)
      	    	print_r($B);
      	    return;
      }
      gen($A, $B, $idx - 1);
      array_unshift($B, $A[$idx]);
      gen($A, $B, $idx - 1);
      return;
   }

   gen($AA, $BB, sizeof($AA)-1);