public static int GenerateAllCombinations(int numCards, int combinations) { var mask = new MaskBits(numCards, combinations); var totalCombinations = BinaryOperations.GetNumberOfCombinations(52ul, 7ul); var numCombinations = 0; using (var file = new StreamWriter(@"poker-all-" + combinations + "-hands.txt")) { while (!mask.IsParsingComplete) { file.WriteLine(mask.ToUint64()); mask.Decrement(); numCombinations++; ConsoleHelper.DrawProgressBar(numCombinations, totalCombinations); } } return(numCombinations); }