tu por cual me recomiendas empezar??
Mi respuesta dependería de tus preferencias sintácticas a la hora de escribir en un lenguaje, y tus objetivos de programación...
De forma general y también para este problema en concreto yo te recomendaría C# o VB.NET, el que más te guste su sintaxis, aunque por supuesto hay otros lenguajes muy capaces, pero no puedo recomendarte empezar por todos al mismo tiempo y es evidente que tengo preferencia o favoritismo por los lenguajes que he mencionado ya que sus ventajas y productividad me parecen muy beneficiosas y pues de ahí surgen las recomendaiones de las personas... ¿no?.
Ambos lenguajes, C# y VB.NET tienen una curva de prendizaje relativamente facil. Puedes acceder a una extensa cantidad de documentación online oficial de Microsoft, con tutoriales y ejemplos de código, además de existir una amplía comunidad de desarrolladores de proyectos de código abierto para cubrir todo tipo de necesidades que puedas tener (y así evitar reinventar la rueda al programar).
Utilizarías el lenguaje C# o VB.NET bajo una IDE muy elegante y sofisticada por nombre 'Visual Studio', y en ambos lenguajes podrás aplicar de forma relativamente sencilla el paralelismo y la aceleración por hardware para optimizar la implementación de un algoritmo por fuerza bruta (además de un generador de permutaciones o lo que puedas necesitar), aunque para llegar a realizar eso primero deberías empezar a aprender y practicar cosas mucho más básicas sobre el uso del lenguaje que elijas hasta obtener un dominio a nivel de usuario, de lo contrario sería como empezar a construir la casa por el tejado en el sentido de que habrás logrado hacer algo "dificil" que está por encima de tus conocimientos y no sabrás hacer cosas mucho más fáciles y básicas que deberías conocer primeramente, lo cual le ocurre a mucha gente a la que veo publicar dudas de programación sobre estos y otros lenguajes.
En resumen, C# o VB.NET sería mi respuesta, pero vamos, que si elijes Java o C++ u otro lenguaje no sería mala opción tampoco. Mientras no sea Batch, ni tampoco VBS ni VB6 ya puestos...
PD: C# y VB.NET son lenguajes compilados, no lenguajes de scripting... por si eso tiene relevancia para ti.
Saludos.