Java - wykorzystując rekursję do tworzenia wszystkich podciągów z łańcucha

Poniższy kod w Javie używa rekursji do tworzenia wszystkich możliwych podciągów z ciągu znaków. Zastanawiam się, czy jest lepszy sposób na kodowanie tego? Chcę użyć rekursji.

public class main {

    public static void main(String[] args) {
        generate("hello");
    }

    public static void generate(String word) {
        if (word.length() == 1) {
            System.out.println(word);
            return;
        }else{
            System.out.println(word);
            generate(word.substring(0, word.length()-1)); 
            generate(word.substring(1, word.length())); 
        }

    }

}

FAQ P - Dlaczego chcę to zrobić za pomocą rekursji? A - Ponieważ dyrektor generalny StackOverflow twierdzi, że rekursja jest ważnahttp://www.joelonsoftware.com/articles/ThePerilsofJavaSchools.html

questionAnswers(5)

yourAnswerToTheQuestion