public List<List<Object>> calculateMedianString() {
        List<List<Object>> bestKMer = new ArrayList<List<Object>>();
        List<String> allKMers = calculateAllKMers();
        int smallestHammingDistance = allKMers.size();
        
        for (String pattern : allKMers) {
            List<Object> helpList = new ArrayList<Object>();
            int totalHammingDistance = calculateTotalHammingDistance(pattern);
            if (totalHammingDistance < smallestHammingDistance) {
                if (bestKMer.size() > 0) {
                    bestKMer.remove(0);
                    helpList.add(totalHammingDistance);
                    helpList.add(pattern);
                    bestKMer.add(helpList);
                    smallestHammingDistance = totalHammingDistance;
                } else {
                    helpList.add(totalHammingDistance);
                    helpList.add(pattern);
                    bestKMer.add(helpList);
                    smallestHammingDistance = totalHammingDistance;
                }
            }
        }

        return bestKMer;
    }