Permutations can do this. You just need to give it enough copies of 1 and 2 such that they can appear arbitrarily often (i.e. n times, where n is the length of your tuples), but only one 3:
With[{n = 3},
Permutations[Flatten@{ConstantArray[{1, 2}, n], 3}, {n}]
]
(* {{1, 2, 1}, {1, 2, 2}, {1, 2, 3}, {1, 1, 2}, {1, 1, 1}, {1, 1, 3},
{1, 3, 2}, {1, 3, 1}, {2, 1, 1}, {2, 1, 2}, {2, 1, 3}, {2, 2, 1},
{2, 2, 2}, {2, 2, 3}, {2, 3, 1}, {2, 3, 2}, {3, 1, 2}, {3, 1, 1},
{3, 2, 1}, {3, 2, 2}} *)
If you want them sorted it's sufficient to sort the list of available numbers (so you don't have to sort the potentially massive list of tuples later):
With[{n = 3},
Permutations[Sort@Flatten@{ConstantArray[{1, 2}, n], 3}, {n}]
]
(* {{1, 1, 1}, {1, 1, 2}, {1, 1, 3}, {1, 2, 1}, {1, 2, 2}, {1, 2, 3},
{1, 3, 1}, {1, 3, 2}, {2, 1, 1}, {2, 1, 2}, {2, 1, 3}, {2, 2, 1},
{2, 2, 2}, {2, 2, 3}, {2, 3, 1}, {2, 3, 2}, {3, 1, 1}, {3, 1, 2},
{3, 2, 1}, {3, 2, 2}} *)
Also, as a sanity check:
With[{n = 11},
Print@Length@Permutations[Flatten@{ConstantArray[{1, 2}, n], 3}, {n}];
Print[2^n + 2^(n - 1)*n]
]
(* 13312
13312 *)