public void doMutation() {
		if (this.charCount == 1) {
			this.mutations.add(Character.toString(charArray[0]));
		} else {
			this.charTail = this.charArray[this.charCount - 1];
			stringMutation newObj = new stringMutation(this.charArrayNoTail, this.charCountTail);
			newObj.doMutation();
			for (String s : newObj.mutations) {
				// for each mutation from newObj, insert tail in each possible
				// position
				// for newObj with charArray abcd, possible pos from 0 to 4,
				// totally 5;
				for (int pos = 0; pos <= this.charCountTail; pos++) {
					char[] mutationArray = s.toCharArray();
					char[] newStr = insertCharToStr(
							this.charTail, mutationArray,pos);
					this.mutations.add(new String(newStr));
				}
			}
		}
	}