public TransactionSet findKItemSubsets(ItemSet itemSet, int k) {
		TransactionSet allSubsets = new TransactionSet();/*New subset of transactions to return in a TransactionSet*/
		int subsetCount = (int) Math.pow(2, itemSet.getItemSet().size());/*index control for loop*/
		int itemSetSize = itemSet.getItemSet().size();/*size control for inner loop*/
		for (int i = 0; i < subsetCount; i++) {
			
			if (k == 0 || GetOnCount(i, itemSet.getItemSet().size()) == k){
			
			ItemSet subset = new ItemSet();
			
			for (int bitIndex = 0; bitIndex < itemSetSize; bitIndex++) {
				if (GetBit(i, bitIndex) == 1) {
					subset.getItemSet().add(itemSet.getItemSet().get(bitIndex));
				}
			}
			
				allSubsets.getTransactionSet().add(new Transaction(subset));//add the new transaction subset
			}
		}
		return (allSubsets);/*final combination of all possible subsets based on the size of k*/
	}