Rutina combinaciones...

18/09/2003 - 15:41 por Alfonso D.P. | Informe spam
Hola amigos existira o alguien tendra alguna función que dado una cadena
me devuelva sus combinaciones posibles sin repetirlas...
Me explico con un ejemplo:
Si le doy como parametro "ABC" me devuelva:
ABC
ACB
BAC
BCA
CAB
CBA

Si le doy "122" me devuelva:
122
212
221
 

Leer las respuestas

#1 Paulo Conde
18/09/2003 - 17:28 | Informe spam
Esta funcion hace lo que necesitas:

Public Function Combinacion(ByVal Cadena As String) As String()

Dim i, j, k As Short

Dim cont As Short = 0

Dim tmp() As String

ReDim tmp(Cadena.Length * (Cadena.Length - 1) * (Cadena.Length - 2) - 1)

For i = 0 To Cadena.Length - 1

For j = 0 To Cadena.Length - 1

For k = 0 To Cadena.Length - 1

If Cadena.Chars(k) <> Cadena.Chars(j) And Cadena.Chars(j) <>
Cadena.Chars(i) And Cadena.Chars(k) <> Cadena.Chars(i) Then

tmp(cont) = Cadena.Chars(i) & Cadena.Chars(j) &
Cadena.Chars(k)

cont += 1

End If

Next

Next

Next

ReDim Preserve tmp(cont - 1)

Return tmp

End Function

Espero te sirva

Preguntas similares