Generate all substrings of a given string

Given a string s, generate and print all possible substrings of a string?


Input:
s = "abcd"

Output:
a ab abc abcd b bc bcd c cd d

Using Nested Loop


using System;

class Program
{
    static void Main()
    {
        string s = "abcd";

        for (int i = 0; i < s.Length; i++)
        {
            for (int len = 1; len <= s.Length - i; len++)
            {
                Console.Write(s.Substring(i, len) + " ");
            }
        }
    }
}
Output:


a ab abc abcd b bc bcd c cd d


Using Linq


using System;
using System.Linq;

class Program
{
    static void Main()
    {
        string s = "abcd";

        var substrings =
            from i in Enumerable.Range(0, s.Length)
            from len in Enumerable.Range(1, s.Length - i)
            select s.Substring(i, len);

        foreach (var sub in substrings)
             Console.Write(" "+ sub);
    }
}
Output:


a ab abc abcd b bc bcd c cd d


Using StringBuilder() Method


using System;
using System.Text;

class Program
{
    static void Main()
    {
        string s = "abcd";

        for (int i = 0; i < s.Length; i++)
        {
            StringBuilder sb = new StringBuilder();

            for (int j = i; j < s.Length; j++)
            {
                sb.Append(s[j]);
                Console.Write(sb.ToString() + " ");
            }
        }
    }
}
Output:


a ab abc abcd b bc bcd c cd d