Module Module1
Sub Main()
Dim numeros() As Integer = {1, 2, 3, 4}
Dim combinaciones As New List(Of List(Of Integer))
GenerarCombinaciones(numeros, 0, New List(Of Integer), combinaciones)
' Mostrar las combinaciones '
For Each combinacion In combinaciones
Console.WriteLine(String.Join(", ", combinacion))
Next
Console.ReadLine()
End Sub
Sub GenerarCombinaciones(ByVal numeros() As Integer, ByVal indice As Integer, ByVal combinacionActual As List(Of Integer), ByVal todasCombinaciones As List(Of List(Of Integer)))
' Agregar la combinación actual a la lista de combinaciones '
todasCombinaciones.Add(New List(Of Integer)(combinacionActual))
' Recorrer los números restantes '
For i As Integer = indice To numeros.Length - 1
' Agregar el número actual a la combinación '
combinacionActual.Add(numeros(i))
' Llamada recursiva para generar combinaciones con el siguiente número '
GenerarCombinaciones(numeros, i + 1, combinacionActual, todasCombinaciones)
' Eliminar el último número para probar otras combinaciones '
combinacionActual.RemoveAt(combinacionActual.Count - 1)
Next
End Sub
End Module