code: public List<T> getPermutation(List<T> storage) {
  		if( storage == null )
  			storage = new ArrayList<T>();
  		else
  			storage.clear();
  
  		for( int i = 0; i < list.size(); i++ ) {
  			storage.add(get(i));
  		}
  
  		return storage;
  	}
docs: Returns a list containing the current permutation.
  
  @param storage Optional storage.  If null a new list will be declared.
  @return Current permutation