code: public boolean previous()
  	{
  		// see if it is back to the start already
  		if( state == 0 )
  			return false;
  		else
  			state = 1;
  
  		for( int i = c; i >= 0; i-- ) {
  			bins[i]--;
  
  			if( i == 0 ) {
  				if( bins[0] < 0 ) {
  					state = 0;
  					// put it back into its first combination
  					for( int j = 0; j < bins.length; j++ ) {
  						bins[j] = j;
  					}
  					return false;
  				}
  				break;
  			} else if( bins[i] <= bins[i-1] ) {
  				bins[i] = N-1-(c-i);
  			} else {
  				break;
  			}
  		}
  		return true;
  	}
docs: Undoes the previous combination computed by {@link #next()}.
  
  @return true if the combination was successfully undone or false is is back to the original state