public static ArrayList<ItemSet> findRuleSubsets(ItemSet candidates, ArrayList<ItemSet> sets){
		ArrayList<ItemSet> allRuleSets = sets;
		
		if(!allRuleSets.contains(candidates)){
			allRuleSets.add(candidates);
		}
		
		for(int i = 0; i < candidates.getItemSet().size();i++){
			
			ArrayList<Item> subset = new ArrayList<Item>(candidates.getItemSet());
			subset.remove(i);
			ItemSet newSet = new ItemSet(subset);
			findRuleSubsets(newSet, allRuleSets);
			
		}
		return allRuleSets;
	}