The following is a minor variant of the function uniqueTuples as given by Simon Woods in this answer.
g[lists___List] := Module[{f},
f[___, x_, x_,___] := Sequence[];
f[x___] := (f[x]=Sequence[];{x});
Attributes[f]={Orderless};
Flatten[Outer[f, lists], Length[{lists}]-1]]
data=RandomInteger[40, {6,11}];
Length[g @@ data] // Timing
(* {6.177640,388897} *)
In the definition of g we have a local variable f, which is used as a function and for which a lot of DownValues could be created. This function is not removed when the Module is evaluated:
Names["f$*"]
(* {f$,f$342} *)
Length[DownValues[f$342]]
(* 388899 *)
I am using version 10.0.2 on Windows (32-bit). Indeed, this bug made Mathematica crash due to lack of memory when I used this function a number of times with larger arguments.