public Set<Set<String>> getSubsets(Set<String> set){
        Set<Set<String>> setsOfSets = new HashSet<Set<String>>();
        if(set.isEmpty()){
            return null;
        }
        if(set.size()==1){
            setsOfSets.add(set);
            return setsOfSets;
        }

        for(int i=1; i<set.size(); i++){
            setsOfSets.addAll(getSubsetsOfSize(new HashSet<String>(), set, i));
        }
        return setsOfSets;
    }