input: Write a python function to generate all possible DNA sequence combinations using recursion.
  assert generate_dnasequence_combinations("AC") == ["AC", "CA"]
  assert generate_dnasequence_combinations("ATG") == ["ATG", "AGT", "TAG", "TGA", "GTA", "GAT"]
  assert generate_dnasequence_combinations("A") == ["A"]
output: def generate_dnasequence_combinations(dna):
      def permute(sequence, start, end):
          if start == end:
              combinations.append("".join(sequence))
          else:
              for i in range(start, end + 1):
                  sequence[start], sequence[i] = sequence[i], sequence[start]
                  permute(sequence, start + 1, end)
                  sequence[start], sequence[i] = sequence[i], sequence[start]  # backtrack
  
      combinations = []
      permute(list(dna), 0, len(dna) - 1)
      return combinations